【发布时间】:2016-01-29 14:06:09
【问题描述】:
在 Perl 中,如果我想执行 foo 这样的 shell 命令,我会这样做:
#!/usr/bin/perl
$stdout = `foo`
在 Python 中我发现了这个非常复杂的解决方案:
#!/usr/bin/python
import subprocess
p = subprocess.Popen('foo', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout = p.stdout.readlines()
retval = p.wait()
有没有更好的解决方案?
请注意,我不想使用 call 或 os.system。我想将stdout 放在一个变量上
【问题讨论】:
-
你用的是什么python版本?
-
为什么不简单:
os.system("cd ..") -
好吧,在这种情况下你会遇到像stackoverflow.com/q/89228/2088135这样的问题
-
Python 和 Perl 都是高级脚本语言,但具有不同的理念。 Perl 旨在让程序员尽可能少地打字,而 Python 则强制结构整洁以具有易于阅读的代码。出于同样的原因,您也找不到
expression unless condition。 -
@TomFenech:我看不出这个问题与您链接的问题有什么关系,即转换路径字符串