如果我在终端上运行args中指定的命令,那么它在终端上运行成功,但在python程序中执行相同的操作不起作用;我在屏幕上看到与输入tar文件大小相当的垃圾字符和大量xterm单词
我觉得问题是如何处理args中的“”字母
import subprocess
try:
args = "cat parsing.tgz <(echo -n ''| gzip)> new-file.tgz".split()
subprocess.check_call(args)
except subprocess.CalledProcessError as e:
print e
我尝试了很多选择,但没有一个是令人满意的。我发现最好的方法是切换到
Popen
。你知道吗需要注意的是:
/bin/sh
对于未转义的括号有问题。如果不想在上面指定'/bin/bash'
,则需要转义paren:我不是专家,但我发现-这个命令不是在
sh
中工作,而是在bash
中工作:这就是为什么它不能直接在子进程中工作的原因。此代码看起来工作正常:
相关问题 更多 >
编程相关推荐