我在python3中使用subprocess模块运行shell命令。
这是我的密码
import subprocess
filename = "somename.py" # in practical i'm using a real file, this is just for example
subprocess.call("pep8 %s" % filename, shell=True))
不同文件的输出只是0
或1
。我对python3还是个新手。在2.7中使用这个可以得到所需的输出,但在这里我无法计算出来。
这是我在Python2.7中得到的输出(对于名为-anu.py
)的文件-
伙计们,请帮帮我。
谢谢
更新:
我尝试使用subprocess.check_output
方法,
这是我得到的结果
>>> subprocess.check_output(["pep8", "anu.py"])
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "X/subprocess.py", line 584, in check_output
it too will be used internally. Example:
subprocess.CalledProcessError: Command '['pep8', 'anu.py']' returned non-zero exit status 1
subprocess.call
只返回它运行的进程的退出代码。通常我建议使用^{pep8
在某些情况下将返回非零退出代码,这将使check_output
引发异常。您可以捕获异常并从中提取输出属性:或者直接使用
^{pr2}$subprocess.Popen
:请注意,
call
行为在Python 2.x和python3.x之间没有变化。您看到的行为差异可能是因为您在交互式提示下运行python2.7,但将python3版本作为实际脚本运行。在交互提示中使用subprocess.call
仍然会打印调用的输出,即使它实际上不是由函数返回的。在相关问题 更多 >
编程相关推荐