我有一个内容文件:
0x11111111
0x22222222
0x33333333
0x44444444
我正在使用以下方式逐行阅读:
f = open('test1', 'r')
print "Register CIP_REGS_CONTROL value:"
for i in range(4):
content = f.read(11)
f.seek(11, 1)
print content
请注意,由于末尾的'\ n'字符,每行有11个字节。但输出是:
0x11111111
0x33333333
在第1和第3行之后有一个空行,我不知道为什么会这样。如果我删除每行中的'\ n',并将读取和寻求的大小更改为10,我得到:
0x11111111
0x33333333
也缺少2条线。有人可以帮忙吗?提前谢谢。
答案 0 :(得分:5)
删除您的搜寻电话。每个调用都跳过接下来的11个字节。读取也会移动当前位置。
答案 1 :(得分:4)
两件事:
seek
之后您不需要read
。在调用read
。print
时,会在您的输出中添加换行符(\n
)。答案 2 :(得分:1)
最简单(也是最安全的 - 它确保您的文件正确关闭)方式是使用with
构造,readline()
print "Register CIP_REGS_CONTROL value:"
with open('test1', 'r') as f:
for i in range(4):
print f.readline().strip()
在没有参数的情况下调用 strip()
会从字符串的开头和结尾删除所有空格(包括\n
)。