在.NET版本中有一个similar question,但我要特别询问Python os.walk
函数。我正在使用最新的python3。你知道吗
假设我有一个目录,其中有许多文件。我正在对每个文件执行一个需要一段时间的操作,为root
目录留有足够的时间由另一个进程在半循环中更改。为了清楚起见,下面是一个例子:
for root, dirs, files in os.walk(rootDirectory):
for file in files:
doAReallyLongBlockingCall(file)
os.walk
会检测到这样的变化吗?如果我添加文件,它们会被os.walk
找到吗?你知道吗
这不是真的os.步行但是操作系统做什么呢 在linux上,一旦打开dir(有一个系统调用),数据就不会在您的手中更改
因此,如果在循环中打开一个文件并花10分钟来处理它,而其中一个未处理的文件被删除,walk仍将为您提供名称,并且在opendir之后创建的任何文件都不会被列出
当您在获取文件之前丢失文件时,您将需要异常来处理这些情况
相关问题 更多 >
编程相关推荐