2017-05-09 30 views
0

我试图分析通过从许多客户端到我的服务器(pc)的ftp传输来的某些文件。所以,我经常收到使用检查python中ftp文件传输的状态

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 

因为这是运行速度比文件传输更快,脚本试图打开图像,抛出一个异常列表O文件,我忽略它,直到不再有例外得到投掷。但即使如此,分析失败了。

我知道我的分析代码有效,因为这只发生在新文件中,而没有发生在第一次运行时。

我用

os.access() 

要获得文件的状态,但这只是给我的权限,并没有如一些工艺目前在其上写入数据。

+0

[在Python中检查文件是否未打开(未由其他进程使用)](http://stackoverflow.com/questions/11114492/check-if-a-file-is-not-open -not-by-by-by-other-process-in-python) –

+0

也许,但在我的具体情况下,我的解决方案要简单得多,直到Linux上的proc目录 – JoseTruyol

回答

0

我实际上找到了一个解决方案。我在Ubuntu中使用proftpd,它有一个configuration,可以在传输时为文件名添加一个前缀和/或前缀,然后将其重命名为原始名称。

我只是不得不忽略所有具有前缀或sufix的文件。有了这个,我保证在完成时打开文件。