我不熟悉Python。我用它来读一个大文件。为此,我使用文件对象作为迭代器,正如jyotidas在这里的第六个答案中指定的:How can I read large text files in Python, line by line, without loading it into memory?
我的代码:
with open(filename, 'r', buffering=100000) as f:
time_data_count = 0
for line in f:
if 'TIME_DATA' in f:
time_data_count += 1
if time_data_count > 20:
print("time_data complete")
else:
print("incomplete time_data data")
但是,我的代码只读取文件的第一行,然后存在循环,因此time\u data\u count保持为0。为什么会这样?
我试着进入代码,但我不明白为什么它只停在第一行
您测试了
if 'TIME_DATA' in f:
,它使用整个文件查找字符串(除非最后一行就是该字符串,并且不是以换行符结尾,否则它将找不到该字符串)。这意味着当for
循环尝试转到下一行时,文件迭代器将耗尽你的意思是测试
if 'TIME_DATA' in line:
相关问题 更多 >
编程相关推荐