重新读取一个打开的文件Python

时间:2013-06-10 10:34:19

标签: python file testing

我有一个脚本读取文件,然后根据该文件完成测试但是我遇到了问题,因为文件在一小时后重新加载,我无法让脚本在之后或之后重新读取文件及时。

所以:

  • 获取新文件
  • 读取文件
  • 对文件执行测试
  • 获取新文件阅读(使用相同的名称 - 但如果它是解决方案的一部分则可以更改)
  • 读取新文件
  • 对新文件执行相同的测试

有人可以建议让Python重新读取文件吗?

2 个答案:

答案 0 :(得分:19)

seek到文件的开头

with open(...) as fin:
    fin.read()   # read first time
    fin.seek(0)  # offset of 0
    fin.read()   # read again

或再次打开文件(我更喜欢这种方式,因为你保持文件打开一小时,在传递之间什么都不做)

with open(...) as fin:
    fin.read()   # read first time

with open(...) as fin:
    fin.read()   # read again

把它放在一起

while True:
    with open(...) as fin:
        for line in fin:
            # do something 
    time.sleep(3600)

答案 1 :(得分:14)

您可以通过以下方式将光标移动到文件的开头:

file.seek(0)

然后你就可以成功阅读它了。