我试图分析一些通过ftp从许多客户端传输到我的服务器(pc)的文件。所以,我经常使用
获取文件列表for dirpath, _, filenames in walk(directoryPath):
for filename in [f for f in filenames if f.endswith(".jpg")]:
files.append(path.join(dirpath, filename))
return files
因为它的运行速度比文件传输快得多,所以脚本会尝试打开图像,抛出异常,然后省略它,直到不再抛出异常为止。但即便如此,分析也会失败。
我知道我的分析代码有效,因为这只会出现在新文件中,而不会出现在首次运行时出现的情况。
我用
os.access()
要获取文件状态,但这只给了我权限,如果某个进程当前正在写入数据,则为no。
答案 0 :(得分:0)
我实际上找到了一个解决方案。我在Ubuntu中使用proftpd,它有一个configuration什么时候可以在传输时为文件名添加一个sufix和/或前缀,然后将其重命名为原始名称。
我只需要忽略带有前缀或后缀的所有文件。有了这个,我保证在完成后打开文件。