Mit*_*ops 2 python parallel-processing bash xargs
我有一个 python 脚本,它对状态缩写列表作为其单个参数进行操作,还有一个包含所有状态缩写字符串的文本文件。
正常的通话是...
$ mypy.py "AK"
Run Code Online (Sandbox Code Playgroud)
...在阿拉斯加运行脚本。
我目前正在使用以下命令对从 statelist.txt 文件中获取的每个州缩写运行脚本:
$ cat statelist.txt | xargs -n 1 ./mypy.py
Run Code Online (Sandbox Code Playgroud)
我现在想要并行执行,GNU Parallels 看起来是正确的选择。我从这里看到这应该是替换的语法xargs -n1
:
$ find . -name '*.html' | parallel gzip --best
Run Code Online (Sandbox Code Playgroud)
所以,我的尝试是
$ cat statelist.txt | parallel python mypy.py
Run Code Online (Sandbox Code Playgroud)
和
$ cat statelist.txt | parallel python mypy.py {}
Run Code Online (Sandbox Code Playgroud)
但这两者都正在回归:
/bin/bash: mypy.py: command not found
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'AK' is not defined
Run Code Online (Sandbox Code Playgroud)
似乎是在不加引号的情况下传递它?但是当我向“{}”添加引号时,它会传入文字“{}”。
cat statelist.txt | parallel --gnu python mypy.py
Run Code Online (Sandbox Code Playgroud)
如果没有--gnu
,GNU 并行可能会选择模拟同名的旧工具(Tollef 的并行)。--tollef
是许多发行版上的默认行为,也是有效的 GNU 样式调用失败的原因。
PS:您可能也xargs
有并行化-C
或-P
并行化。
归档时间: |
|
查看次数: |
854 次 |
最近记录: |