我有一个脚本,它会读取一个文件,然后根据该文件完成测试。但是我遇到了一个问题,因为文件每隔一小时重新加载,而我无法让脚本在此之后或此时重新读取该文件。
所以:
- 获取新的要读取的文件
- 读取文件
- 对文件执行测试
- 获取新的要读取的文件(使用相同的名称 - 但如果它是解决方案的一部分,则可以更改)
- 读取新文件
- 对新文件执行相同的测试
有人能建议一种方法让Python重新读取该文件吗?
将文件指针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)
您可以通过以下方式将光标移动到文件开头:
file.seek(0)
那么你就可以成功地阅读它。
open
打开文件时,位置会自动重置,或者你可以使用f.seek
手动设置位置。 - wjandrea