遍历python中增长文件夹中的文件
问题描述:
我想遍历python文件夹中的所有文件。遍历python中增长文件夹中的文件
此外,给出文件夹正在增长,即文件被异步添加到文件夹中。每当我迭代时,我正在做一些操作。
所以假设该操作所花费的时间超过了下载速度,这意味着在下载结束之前我不会完成迭代。
如果有什么办法可以做到这一点,请提出建议。你总是可以重新开始,所以请不要建议这种方法。
目前,我做这样的事情:
onlyfiles = [ f for f in listdir(".") if isfile(join(".",f)) ]
for s in onlyfiles:
#dosomething
答
我会使用Python set
S穿透目录下建你已经处理的文件列表,然后循环若干次,直到您满意你已经看到了所有当前批次的文件。
喜欢的东西:
#!/usr/bin/env python
import os
import time
processed = set()
tripsWithNoChange = 0
timeToLetWriterCatchUp = 2
maxNumberOfTrips = 10
while tripsWithNoChange < maxNumberOfTrips:
for root,dirs,files in os.walk('.'):
candidates = set(files)
# remove the files already visited from consideration
candidates.difference_update(processed)
if len(candidates) == 0:
tripsWithNoChange += 1
continue
for f in candidates:
# process file
pass
processed.update(candidates)
time.sleep(timeToLetWriterCatchUp)
有几个magic
号码这种方法,直到你确信所有的文件处理,特别是,你将需要调整:
- tripsWithNoChange
- timeToLetWriterCatchUp
- maxNumberOfTrips
也许这会给你一些想法。
+0
其工作..谢谢:) –
也许保留一组您所访问过的所有文件?发布一些代码,展示您尝试过的一些解决方案 – Erik
我编辑并添加了现在用于遍历文件夹的代码。 –