运行Windows外壳采用Python命令(Running windows shell comman

2019-07-19 23:50发布

我们如何可以使用Python OS壳互动? 我想通过Python运行CMD命令窗口。 怎样才能实现?

Answer 1:

较新的subprocess.check_output和类似的命令都应该更换os.system 。 请参阅此页面了解详情。 虽然我不能对此进行测试在Windows上,下面应该工作:

from subprocess import check_output
check_output("dir C:", shell=True)

check_output返回从您的命令输出的字符串。 另外, subprocess.call只运行该命令并返回命令的状态(通常为0,如果一切正常)。

还要注意的是,在Python 3,该字符串输出现在是bytes输出。 如果你想改变成一个字符串这一点,你需要像

from subprocess import check_output
check_output("dir C:", shell=True).decode()

如果必要的话, 你可以告诉它的那种编码程序输出。 默认为utf-8通常工作得很好,但其他标准选项是在这里 。



Answer 2:

你可以使用os模块的系统方法 。

你只要把在命令字符串形式,返回值是windows enrivonment变量COMSPEC

例如:

使用os.system(“蟒”)打开了Windows命令提示,并运行python解释



Answer 3:

@作者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)


Answer 4:

您可以使用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


Answer 5:

import subprocess
result = []
win_cmd = 'ipconfig'(curr_user,filename,ip_address)
process = subprocess.Popen(win_cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE )
for line in process.stdout:
    print line
result.append(line)
errcode = process.returncode
for line in result:
    print line


文章来源: Running windows shell commands with python