gpt4 book ai didi

python - 在 Python 中使用多处理读取多个文件并连接读取值

转载 作者:行者123 更新时间:2023-12-04 03:16:01 25 4
gpt4 key购买 nike

我有 100 个 csv 文件,每个文件存储相同数量的列。我不想一次阅读它们,而是想实现多处理。

为了表示,我创建了 4 个文件:Book1.csv、Book2.csv、Book3.csv、Book4.csv,它们在 A 列第 1 行开始的每个文件中存储数字 1 到 5。

我正在尝试以下操作:

import pandas as pd
import multiprocessing
import numpy as np

def process(file):
return pd.read_csv(file)

if __name__ == '__main__':
loc = r'I:\Sims'
fname = [loc + '\Book1.csv', loc + '\Book2.csv', loc + '\Book3.csv', loc + '\Book4.csv']
p = multiprocessing.Pool()

for f in fname:
p.apply_async(process, [f])

p.close()
p.join()

我从 link 得到上面代码的想法.

但是上面的代码并没有产生我期望的结果:

1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5

编辑:我想在单独的处理器中加载每个文件并组合文件内容。由于我有 100 多个文件要加载和合并内容,我希望如果我一次加载 4 个文件(我的 PC 有 4 个处理器),可以加快这个过程。

最佳答案

试试这个

import pandas as pd
import multiprocessing
import numpy as np

def process(file):
return pd.read_csv(file)

if __name__ == '__main__':
loc = r'I:\Sims'
fname = [loc + '\Book1.csv', loc + '\Book2.csv', loc + '\Book3.csv', loc + '\Book4.csv']


with multiprocessing.pool(5) as p: #Create a pool of 5 workers
result = p.map(process, fname)
print(len(result))

关于python - 在 Python 中使用多处理读取多个文件并连接读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877311/

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