如何使用python的subprocess.Popen使用单个输入csv和每个进程输入一行的方式?

时间:2019-02-21 23:24:17

标签: python-3.x asynchronous concurrency subprocess

我想运行python脚本的多个实例,同时将变量作为每个实例的一行csv输入到每个脚本的类实例中。

例如,在主文件中,我打开csv并存储为列表,每一行都是字符串列表。我想遍历字符串列表,并将每个字符串列表作为subprocess.Popen()的输入。

每个进程应异步运行,并为每个采用不同变量的类实例化。

我找到了subprocess.Popen()的示例代码,这是我尝试使用的对它的无效修改:

with open('variables.csv') as f:
    reader = csv.reader(f)
    input_variables = list(reader)

for iv in input_variables:
    proc = subprocess.Popen([sys.executable, 'script_to_run.py', iv, '{}_out.csv'.format(iv[0])])
    procs.append(proc)

for proc in procs:
    proc.wait()

input_variables是字符串列表的列表,并且iv是字符串列表。

我迷失的重点是如何传递要在每个进程中使用的每个字符串列表?是否需要将第3个参数(我目前设置为“ iv”)设置为csv?

如果是这种情况,而我正在尝试创建100个异步进程,这是否意味着我需要100个输入csvs,每个输入csv都有一行字符串?这似乎没有道理。

0 个答案:

没有答案