Python 操作系统(cmd)在终端上与cmd不同

Python 操作系统(cmd)在终端上与cmd不同,python,bash,shell,unix,ubuntu,Python,Bash,Shell,Unix,Ubuntu,为什么此代码在终端(Ubuntu 12.04)中成功运行: 但是python(2.7.5)中的以下代码: 是否生成此错误 sh: -c: line 0: syntax error near unexpected token `>' sh: -c: line 0: `python -c "print 123" > >(tee stdout.txt)' os.system调用sh,它不支持bash的>(进程替换) 出于兼容性原因,即使bash提供了sh,这也是正确的 而是显式运行

为什么此代码在终端(Ubuntu 12.04)中成功运行:

但是python(2.7.5)中的以下代码:

是否生成此错误

sh: -c: line 0: syntax error near unexpected token `>'
sh: -c: line 0: `python -c "print 123" > >(tee stdout.txt)'

os.system
调用
sh
,它不支持bash的
>(进程替换)

出于兼容性原因,即使
bash
提供了
sh
,这也是正确的

而是显式运行bash:

import subprocess
subprocess.call(["bash", "-c", 'python -c "print 123" > >(tee stdout.txt)'])

os.system
调用
sh
,它不支持bash的
>(进程替换)

出于兼容性原因,即使
bash
提供了
sh
,这也是正确的

而是显式运行bash:

import subprocess
subprocess.call(["bash", "-c", 'python -c "print 123" > >(tee stdout.txt)'])

os.system
调用
sh
,它不支持bash的
>(进程替换)

出于兼容性原因,即使
bash
提供了
sh
,这也是正确的

而是显式运行bash:

import subprocess
subprocess.call(["bash", "-c", 'python -c "print 123" > >(tee stdout.txt)'])

os.system
调用
sh
,它不支持bash的
>(进程替换)

出于兼容性原因,即使
bash
提供了
sh
,这也是正确的

而是显式运行bash:

import subprocess
subprocess.call(["bash", "-c", 'python -c "print 123" > >(tee stdout.txt)'])

您需要传递参数
shell=True
。更好的方法是使用本机python。出于兴趣,您为什么要使用
>(tee…
,而不仅仅是
|tee
?感谢本机python建议。无论如何,我想用任何命令来解决这个问题(例如,
echo hello
)。如果我试图传递参数
shell=True
我得到
TypeError:system()不接受关键字参数
我试图使用以下命令运行一个命令:这个问题是问题的一个足够简化的版本。@axelbrz:,然后在Python中对它们执行任何您想要的操作。这最终可能会更好。您需要传递参数
shell=True
。更好的方法是使用本机python。出于兴趣,您为什么要使用
>(tee…
,而不仅仅是
|tee
?感谢本机python建议。无论如何,我想用任何命令来解决这个问题(例如,
echo hello
)。如果我试图传递参数
shell=True
我得到
TypeError:system()不接受关键字参数
我试图使用以下命令运行一个命令:这个问题是问题的一个足够简化的版本。@axelbrz:,然后在Python中对它们执行任何您想要的操作。这最终可能会更好。您需要传递参数
shell=True
。更好的方法是使用本机python。出于兴趣,您为什么要使用
>(tee…
,而不仅仅是
|tee
?感谢本机python建议。无论如何,我想用任何命令来解决这个问题(例如,
echo hello
)。如果我试图传递参数
shell=True
我得到
TypeError:system()不接受关键字参数
我试图使用以下命令运行一个命令:这个问题是问题的一个足够简化的版本。@axelbrz:,然后在Python中对它们执行任何您想要的操作。这最终可能会更好。您需要传递参数
shell=True
。更好的方法是使用本机python。出于兴趣,您为什么要使用
>(tee…
,而不仅仅是
|tee
?感谢本机python建议。无论如何,我想用任何命令来解决这个问题(例如,
echo hello
)。如果我试图传递参数
shell=True
我得到
TypeError:system()不接受关键字参数
我试图使用以下命令运行一个命令:这个问题是问题的一个足够简化的版本。@axelbrz:,然后在Python中对它们执行任何您想要的操作。这最终可能会有更好的结果。