考虑有一个文件test.txt
其中有一些随机文本。
现在我们运行以下代码:
f = open('test.txt', 'r')
f.read()
现在我们将数据附加到test.txt
来自其他一些进程。有没有办法不用重新打开f
我们可以read
新数据?
这个问题仅限于Python,只需要少量代码就可以理解要点。
编辑:我已经尝试了我所知道的一切(冲洗、阅读、寻找等),但这似乎没有更新任何东西。
编辑:由于行为似乎有所不同,具体取决于文件“附加”的方式,我将给出更具体的设置。我使用的是 OS X 10.9,我正在尝试阅读/var/log/system.log
这是写给syslogd
.
Edit:看来我错了。用一个read
将拉取新数据,但如果数据很小,那么flush
必须先使用才能读取它。
如果你读自f
再次,您将获得更多数据。
f = open('my_file')
print(f.read())
# in bash: echo 'more data' >> my_file
print(f.read())
f
基本上是一个带有位置的文件句柄,再次读取它只会继续从当前位置读取。
这也可能受到影响what正在修改文件。许多文本编辑器会先保存到单独的文件,然后复制原始文件。如果发生这种情况,您将看不到新文件中的更改。您可以继续使用现有文件,但一旦您关闭它,操作系统将完成删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)