【发布时间】:2022-07-04 21:13:05
【问题描述】:
我需要从目录中获取每个文件的详细信息。它需要更长的时间。我需要实现 Multiprocessing 以便它的执行可以提前完成。
我的代码是这样的:
from pathlib import Path
from os.path import getmtime, getsize
from multiprocessing import Pool, Process
def iterate_directories(root_dir):
for child in Path(root_dir).iterdir():
if child.is_file():
modified_time = datetime.fromtimestamp(getmtime(file)).date()
file_size = getsize(file)
# further steps...
else:
iterate_directories(child) ## I need this to run on separate Process (in Parallel)
我尝试使用下面的方法进行递归调用,但它不起作用。它立即退出循环。
else:
p = Process(target=iterate_directories, args=(child))
Pros.append(p) # declared Pros as empty list.
p.start()
for p in Pros:
if not p.is_alive():
p.join()
我在这里缺少什么?如何并行运行子目录。
【问题讨论】:
标签: python-3.x python-asyncio python-multiprocessing python-multithreading azure-databricks