我有一个Python2.7.x进程在一个无限循环中运行,它监视Ubuntu服务器中的一个文件夹。你知道吗
每当它找到一个文件时,它就会对照一组已经处理过的已知文件检查该文件,并相应地采取行动。在伪代码中:
found = set()
while True:
for file in all_files("<DIR>"):
if file not in found:
process_file(file, found)
我怎样才能确保文件没有被复制到那里?我不想说,采取MD5总和文件或打开它与另一个进程,直到我确定它的一切都在那里,并准备就绪。你知道吗
最安全的解决方案是通过pyinotify库使用Linux内核的^{} API。根据您的需要,尝试使用
IN_CREATE
和IN_MOVED_TO
事件。还要注意this blog post关于pyinotify库的一些实现问题的警告。你知道吗由于锁定和其他系统级操作,在文件完成复制之前,您将无法对其执行任何操作。你知道吗
一个文件不能同时进行两个操作。你知道吗
相关问题 更多 >
编程相关推荐