我正在使用subprocess模块在Python 3中运行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。我对Python 3很陌生。在2.7中使用此功能可以得到所需的输出,但是我现在无法弄清楚。
以下是在Python 2.7中对于名为“anu.py”的文件所获得的输出:
anu.py:2:1: W191 indentation contains tabs
anu.py:3:1: W191 indentation contains tabs
anu.py:3:7: E228 missing whitespace around modulo operator
anu.py:4:1: W191 indentation contains tabs
anu.py:5:1: W191 indentation contains tabs
anu.py:6:1: W191 indentation contains tabs
anu.py:7:1: W191 indentation contains tabs
anu.py:7:9: E231 missing whitespace after ','
anu.py:8:1: W191 indentation contains tabs
anu.py:9:1: W191 indentation contains tabs
1
请大家帮帮我。 谢谢
更新:
我尝试使用
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
(output, _)
? - Anurag-Sharmap.communicate()
返回元组(stdoutdata, stderrdata)
。我们只对 stdout 感兴趣。一个常见的 Python 约定是使用_
作为我们实际上不感兴趣的元组参数的变量。 - dano