【发布时间】:2011-08-22 17:56:10
【问题描述】:
我的问题是,当日志旋转时,python 程序的日志记录会停止。 我已将其追踪到流本身。我看不到任何方法来判断流是否从 python 中断。删除文件后,它仍然可以毫无问题地接受写入。
import os
FILE = 'testing.txt'
fs = open(FILE, 'a')
fs.write('word')
os.remove(FILE)
fs.write('Nothing....') # Nothing breaks
print(fs.errors) # No errors
那么,如何确定文件流是否仍然有效? 并且检查文件是否存在也无济于事,因为无论流是否仍然有效,文件都将始终存在。
【问题讨论】:
-
你用的是什么操作系统和什么版本的python?我尝试运行它并且 os.remove(FILE) 给了我一个错误;它说文件正在使用中!我没有在任何其他程序中打开它,所以它一定是在 python 中打开的。我在这台笔记本电脑上使用 XP,因为它是我的学校电脑,它只有 Python 2.5
-
有趣。我的目标操作系统是 Linux (redhat) 和 Python 2.6.5。我在 Linux (Ubuntu) Python 2.7.1 中测试了代码
标签: python linux stream delete-file logrotate