gpt4 book ai didi

python - Python 中的多处理执行并行写入

转载 作者:行者123 更新时间:2023-12-01 00:14:39 25 4
gpt4 key购买 nike

我正在尝试并行执行一项任务。这是一项基本任务,我只是想探索 python 中的多重处理。我有 35 个文件,我正在尝试对这 35 个文件进行一些文件格式化并将它们写入新文件。我写了下面的代码:

import csv
import json
import os
import multiprocessing as mp

path = '<somepath>'

total_csv_file_list = []
for filename in os.listdir(path+'csv_3'):
total_csv_file_list.append(os.path.join(path+'csv_3',filename))
print(total_csv_file_list)

def run_sed (path):
path_csv=str(path)+'csv_3'
path_json=str(path)+'json'
for filename in path:
# print("sed '1s/^/[/;$!s/$/,/;$s/$/]/' "+ (filename)+'>'+(filename.split('.')[0]+'.json'))
os.system("sed '1s/^/[/;$!s/$/,/;$s/$/]/' "+ (filename)+'>'+(filename.split('.')[0]+'.json'))

#run_sed(total_csv_file_list)
p = mp.Pool(processes=mp.cpu_count())
total_file_list = p.map(run_sed,total_csv_file_list)
p.close()
p.join()

在实现多处理之前,我已经打印出了 sed 命令,并且当我尝试从 shell 运行它时,它的格式正确并且正在运行。但是当我通过上面的代码实现它时,我收到以下错误:

sed: can't read r: No such file or directory
sed: can't read A: No such file or directory
sed: can't read i: No such file or directory
sed: can't read k: No such file or directory

任何帮助将不胜感激。

最佳答案

如果 path 是字符串,则 for filename in path: 将遍历字符串的每个字符。

请注意您在此行中传递的文件名列表

p.map(run_sed,total_csv_file_list)

已经被 map() 函数分成单个文件名,因此不需要再次循环它。

具体操作:在 def run_sed (path): 中删除整行 for filename in path:

关于python - Python 中的多处理执行并行写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59410366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com