gpt4 book ai didi

python-3.x - python3 file.readline EOF吗?

转载 作者:行者123 更新时间:2023-12-03 15:45:58 25 4
gpt4 key购买 nike

我在使用file.readline确定何时到达python中的文件末尾时遇到问题

fi = open('myfile.txt', 'r')
line = fi.readline()
if line == EOF: //or something similar
dosomething()

c = fp.read()
如果c为None:
将无法正常工作,因为那样我将丢失下一行的数据,并且如果一行仅包含回车符,我将错过空行。

我看过许多相关的文章,它们都使用了固有的循环,这些循环在完成后就会中断。我没有循环播放,因此这对我不起作用。另外,我的文件大小以GB为单位,有几千行。脚本可能要花费数天来处理文件。所以我需要知道如何判断我何时在python3中的文件末尾。任何帮助表示赞赏。谢谢!

最佳答案

我遇到了同样的问题。我的特定问题是对两个文件的迭代,其中较短的文件仅应在较长文件的特定读取中读取一行。

如此处所述,逐行迭代的自然pythonic方法就是迭代。我坚持这种“自然性”的解决方案是仅手动利用文件的iterator属性。像这样的东西:

with open('myfile') as lines:
try:
while True: #Just to fake a lot of readlines and hit the end
current = next(lines)
except StopIteration:
print('EOF!')

您当然可以用自己的IOWrapper类修饰它,但这对我来说已经足够了。只需将所有对 readline的调用替换为 next的调用,别忘了 catch StopIteration

关于python-3.x - python3 file.readline EOF吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44855064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com