并发并行执行

时间:2018-03-14 15:38:34

标签: python multithreading python-3.x multiprocessing concurrent.futures

我试图使用并发期货在不同的文件夹中同时执行几个python代码。代码运行正常,但是当我检查子文件夹时,我没有看到任何输出,所以我假设我调用的python代码从未执行过。 代码首先在所有文件夹中找到具有特定名称的python脚本,然后并行调用它们。将输出写入另一个文本文件中,因此我的目标是让他们将文本文件写入脚本所在的文件夹中。 例如:

Folder A
ReadTextFileV9-10.py
Folder B
ReadTextFileV9-10.py

我希望out out是

Folder A
ReadTextFileV9-10.py
Output.txt 

Folder B
ReadTextFileV9-10.py
Output.txt 

这是我的代码。

from concurrent import futures
import re
import os
import timeit
import os
import glob
import re
from glob import glob
import subprocess

FileList = [];

start_dir = os.getcwd();
pattern   = "ReadTextFileV9-10.py"

for dir,_,_ in os.walk(start_dir):
    FileList.extend(glob(os.path.join(dir,pattern))) ;

print(FileList)

def Run_Code(Str):

    return subprocess.run(Str)
futuress=[]
def main_function(FileList):
    with futures.ProcessPoolExecutor(max_workers=2) as executor:
        #results = executor.map(Run_Code, FileList)

        for file in FileList:
            future = executor.submit(subprocess.run, file)

            futuress.append(future)
        return futuress

results=main_function(FileList)

我很感激,如果有人能帮助我弄清楚我做错了什么。

由于

0 个答案:

没有答案