首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表中的多进程多文件

列表中的多进程多文件
EN

Stack Overflow用户
提问于 2014-05-21 21:33:27
回答 1查看 18K关注 0票数 7

我正在尝试同步读取一个包含N个.csv文件的列表。

现在我要做的是:

进口多进程

  1. 空列表
  2. 在列表中添加..csv的listdir
  3. def A() -偶数档案(列表:2)
  4. def B() --奇数文件(列表1::2)
  5. 过程1 def A()
  6. 过程2 def B() def read_all_lead_files(文件夹):glob.glob中的文件(folder+“*.csv”):file_list.append(文件) def read_even():file_list::2 def read_odd():file_list1::2 p1 = Process(target=read_even) p1.start() p2 = Process(target=read_odd) p2.start()

是否有更快的方法将列表的分区分割为Process函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 21:47:24

我猜这是应你的要求,因为原来的问题很不清楚。由于os.listdir不能保证排序,所以我假设您的“两个”函数实际上是相同的,您只需要同时对多个文件执行相同的过程。

根据我的经验,最简单的方法是旋转一个Pool,为每个文件启动一个进程,然后等待。例如:

代码语言:javascript
复制
import multiprocessing

def process(file):
    pass # do stuff to a file

p = multiprocessing.Pool()
for f in glob.glob(folder+"*.csv"):
    # launch a process for each file (ish).
    # The result will be approximately one process per CPU core available.
    p.apply_async(process, [f]) 

p.close()
p.join() # Wait for all child processes to close.
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23794207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档