【发布时间】:2018-04-03 09:09:51
【问题描述】:
我有一个连续运行的 python 文件,偶尔会通过键盘输入写入文件。
但是,如果我在另一个编辑器中编辑文件(使用例如 sed 或 head 或 gedit)然后再次保存,我的 python 程序不再写入文件,即使(使用 gedit 时)我退出编辑。
继续写入文件的正确方法是什么? 这是一个例子
import sys
f = open('tmp.txt', 'ab')
while 1:
raw_input()
f.write('this is a test\n')
f.flush()
f.close()
例子:
python tmp.py
(enter input) #writes line to file
[ in a separate terminal ] sed -i '$ d' tmp.txt #deletes last line in file
(enter input to python in terminal) #no longer writes to file
【问题讨论】:
-
也许你需要在写作之前寻找到最后。
f.seek(0, os.SEEK_END) -
也许您需要现实一点,并表明您没有在
(enter ...和(enter ...)之间运行sed -i ...,而是在不同的终端中运行。否则,您将停止脚本并重新启动它。 -
抱歉没有说清楚,我确实在单独的终端中运行我的文件编辑。彼得:这可能也是问题的一部分,我明天会调查最终原因是什么。谢谢!