以适当的方式在Python 3中读取不断更新的文件(每秒20次)?

时间:2019-01-16 07:39:49

标签: python python-3.x file updating

我正在处理一个不断增长的csv文件,每秒添加约20行。每行都需要解析。我下面的代码片段确实可以正常工作,但是似乎稍后会停止更新。它运行在自己的线程中,如果我手动更新csv文件(即每隔几秒钟换一行),它似乎就可以正常工作。

file=open('data.csv', 'r')
while True:
    line=file.readline()
    if len(line) > 2:
        print(line)
        #parse

这是在Ubuntu 14.04和Python 3.5上运行的(不幸的是,我仍然使用这些版本)。奇怪的是,在Windows 7上运行时,我没有发现任何问题。是否有更好的方法来解决此问题?

1 个答案:

答案 0 :(得分:0)

由于OP声明已附加文件,所以我建议尝试对How can I tail a log file in Python?的答案。简而言之,您可以这样做:

  • 您的python脚本应使用built-in tail并检查tail的返回值。

  • 使用名为sh

  • 的外部python模块