python 运行cmd系统命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 运行cmd系统命令相关的知识,希望对你有一定的参考价值。

参考技术A eg:os.system('ls')  

这个会直接给出结果,但是没有办法进行进一步的保存和处理

2.os.popen(cmd)

eg:str = os.popen("ls").read()

a = str.split("\n")  

会得到['1.ini',

'XXX.txt',

'XXX.txt',

'androidStudioProjects']

3.使用subprocess模块

可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。

import subprocess

subprocess.call (["cmd", "arg1", "arg2"],shell=True)

#会直接打印出结果。

2、subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)

# shell设为true,程序将通过shell来执行,如果command不是一个可执行文件,shell=True是必须的

# stdin, stdout, stderr分别表示程序的标准输入、输出、错误句柄。他们可以是PIPE,文件描述符或文件对象,也可以设置为None,表示从父进程继承。

# subprocess.PIPE实际上为文本流提供一个缓存区。

shell=True意思是shell下执行command

3. 使用模块 commands模块

import commands

python 的os.system问题?

使用如下命令:
import os
os.system('cmd')
反馈是:'cmd' 不是内部或外部命令,也不是可运行的程序或批处理文件。这是怎么回事?请哪位大神指教一下。

能先说下你想要运行什么命令吗,cmd泛指command,所以再dos窗口并没有名叫“cmd”的命令。
你可以这样操作(windows系统):
cmd = "dir"
os.system(cmd)
等价于:os.system("dir")
参考技术A

os.system(cmd),你试试不加‘ ’

------------------分隔线----------------------

刚才回复了,不知道为什么没回复出去,应该还要审核。

由于我之前也没亲自实验,亲自上手一番cmd是泛指cmd命令。

比如输入os.systyem("dir")

-------------------------------------------

再次尴尬,由于你回复说“改成双引号,也不行”,所以我也没试os.system("cmd"),但是我在pycharm上试了一下,好像也可以

追问

大神,我取消了冒号也不行啊。改成双引号,也不行。

追答

尴尬了,因为我也是刚从百度搜的,自己没试。

刚才我自己试了下,这个cmd,应该并不是真的是“cmd”三个字,它是代表cmd命令。

就比如说os.system("dir")

请查看最新回复。

以上是关于python 运行cmd系统命令的主要内容,如果未能解决你的问题,请参考以下文章

python执行系统命令的四种方式

计算机cmd命令如何使用

如何解决win7系统无法运行cmd命令提示符

计算机cmd命令如何使用?

如何用CMD命令运行程序?

python 调用系统命令 获取结束状态