读取某些行readline()并使用它是否安全for line in file,是否保证使用相同的文件位置?
通常,我想忽略第一行(标题),所以我这样做:
FI = open("myfile.txt")
FI.readline() # disregard the first line
for line in FI:
my_process(line)
FI.close()
Run Code Online (Sandbox Code Playgroud)
这是安全的,即,是否保证在迭代行时使用相同的文件位置变量?
Sim*_*ker 16
不,这不安全:
由于使用预读缓冲区,将next()与其他文件方法(如readline())结合使用是行不通的.
您可以next()在这里跳过第一行.您还应该测试StopIteration,如果文件为空,将会引发该问题.
with open('myfile.txt') as f:
try:
header = next(f)
except StopIteration as e:
print "File is empty"
for line in f:
# do stuff with line
Run Code Online (Sandbox Code Playgroud)