【问题标题】:Parallel Processing Issue in PythonPython中的并行处理问题
【发布时间】:2016-03-04 23:38:11
【问题描述】:

我有一个 python 脚本A.py,它接受带有一些list of IPs 的目标文件的参数,并输出一个CSV 文件,其中包含有关某些来源的IP 的信息。( Run Method : python A.py Input.txt -c Output.csv )

完成这项工作需要很长时间。后来,我拆分输入文件( split -l 1000 Input.txt) -> 创建目录(10 directories)-> 执行脚本,输入在screen 模式下并行拆分为 10 个目录

如何有效地完成这类工作?请问有什么建议吗?

【问题讨论】:

标签: python shell parallel-processing gnu-parallel


【解决方案1】:

试试这个:

parallel --round --pipepart -a Input.txt --cat python A.py {} -c {#}.csv

如果A.py 可以从fifo 中读取,那么这样会更有效:

parallel --round --pipepart -a Input.txt --fifo python A.py {} -c {#}.csv

如果您的磁盘有较长的寻道时间,那么使用--pipe 而不是--pipepart 可能会更快。

【讨论】:

  • @ole 感谢您的回复。我看不到任何进程正在运行。我在屏幕上得到一些提示“并行:警告:输入是从终端读取的。只有专家才会故意这样做。按 CTRL- D 退出 " 和 {#}.csv 是什么意思!这是否意味着目录中的任何 CSV 文件?
  • {#} 是作业号的替换字符串。所以它会将 1.csv 传递给第一个作业,将 2.csv 传递给下一个作业,依此类推。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多