Avi*_*wal 46 python windows shell operating-system
我们如何使用Python与OS shell进行交互?我想通过python运行windows cmd命令.如何实现?
Mik*_*ike 62
subprocess.check_output应该替换更新和类似的命令os.system.有关详情,请参阅此页面.虽然我无法在Windows上测试此功能,但以下情况应该有效:
from subprocess import check_output
check_output("dir C:", shell=True)
Run Code Online (Sandbox Code Playgroud)
check_output返回命令输出的字符串.或者,subprocess.call只需运行命令并返回命令的状态(如果一切正常,通常为0).
另请注意,在python 3中,现在bytes输出该字符串输出.如果你想把它改成一个字符串,你需要类似的东西
from subprocess import check_output
check_output("dir C:", shell=True).decode()
Run Code Online (Sandbox Code Playgroud)
如有必要,您可以告诉它您的程序输出的编码类型.默认值是utf-8,通常可以正常工作,但其他标准选项在这里.
cri*_*aig 12
重构@ srini-beerge的答案,获取输出和返回码
import subprocess
def run_win_cmd(cmd):
result = []
process = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
for line in process.stdout:
result.append(line)
errcode = process.returncode
for line in result:
print(line)
if errcode is not None:
raise Exception('cmd %s failed, see above for details', cmd)
Run Code Online (Sandbox Code Playgroud)
您可以使用subprocess带有以下代码的包:
import subprocess
cmdCommand = "python test.py" #specify your cmd command
process = subprocess.Popen(cmdCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
print output
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162170 次 |
| 最近记录: |