在Python中执行cmd
作者:吴尼玛 时间:2022-05-20 07:24:50
1、使用os.system()方法
os.system
用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功。
示例代码:
# coding:utf-8
import os
os.system("ls")
PS:os.system()
方法是简单粗暴的执行cmd指令,没有办法获取到cmd
输出的内容。
PPS:os.system()
方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system
函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0x0100,换算为十进制得到256。
2、使用os.popen()方法
os.popen()
方法用于从一个命令打开一个管道。在Unix
,Windows
中有效。os.popen
返回的是一个file对象,同open打开文件一样操作。
popen()方法语法格式如下:
os.popen(command[, mode[, bufsize]])
参数:
command – 使用的命令。
mode – 模式权限可以是 ‘r'(默认) 或 ‘w'。
bufsize – 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
示例代码:
# coding:utf-8
import os
# popen返回文件对象,同open操作一样
f = os.popen(r"ls", "r")
l = f.read()
print(l)
f.close()
返回值是文件对象的推荐处理方法:
with os.popen(cmd, "r") as p:
r = p.read()
使用它,不需要显式的写p.close()。
PS:os.popen()
方法是非阻塞的。
3、使用subprocess.Popen()
python2.4
版本后,提供了subprocess
这个模块来产生子进程,并且可以连接到子进程的标准输入、输出、错误中,还可以获得子进程的返回值。
subprocess.Popen()的定义如下:
class subprocess.Popen( args,
bufsize=0,
executable=None,
stdin=None,
stdout=None,
stderr=None,
preexec_fn=None,
close_fds=False,
shell=False,
cwd=None,
env=None,
universal_newlines=False,
startupinfo=None,
creationflags=0)
其参数意义在此不赘述。一段简单的示例代码:
# coding:utf-8
import subprocess
p = subprocess.Popen("ls", shell=True, stdout=subprocess.PIPE)
r = p.stdout.read()
print(r)
PS:subprocess
提供了2种方法调用子程序。subprocess.call()
是阻塞式的,subprocess.Popen()
是非阻塞的。
来源:https://segmentfault.com/a/1190000040734370
标签:Python,cmd
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python实现 PS 图像调整中的亮度调整
2021-04-02 20:08:54
用表格帮你了解Python数据类型
2023-11-08 08:55:25
python获取天气接口给指定微信好友发天气预报
2023-08-11 18:13:06
![](https://img.aspxhome.com/file/2023/5/125165_0s.png)
python3写的简单本地文件上传服务器实例
2023-08-23 02:50:58
python3.6实现学生信息管理系统
2021-02-09 20:54:48
python离散建模之感知器学习算法
2022-06-10 04:49:47
asp中通过addnew添加内容后取得当前文章的自递增ID的方法
2011-02-05 11:05:00
基于Python2、Python3中reload()的不同用法介绍
2023-10-01 17:59:15
解决python 找不到module的问题
2022-08-05 07:33:25
keras分类模型中的输入数据与标签的维度实例
2022-01-30 02:12:43
HTML和SEO基础知识:H标签全透视
2010-09-21 16:45:00
![](https://img.aspxhome.com/file/UploadPic/20109/21/1412060-45s.jpg)
javascript 实现子父窗体互相传值的简单实例
2023-08-09 09:52:52
使用ob系列函数实现PHP网站页面静态化
2023-11-15 03:26:05
![](https://img.aspxhome.com/file/2023/4/72684_0s.png)
python提取照片坐标信息的实例代码
2023-06-01 16:37:10
tensorflow使用range_input_producer多线程读取数据实例
2022-10-19 16:43:21
怎么让别人看不到网页源代码
2008-03-21 13:06:00
python包的导入方式总结
2021-01-18 08:55:23
Win10下用Anaconda安装TensorFlow(图文教程)
2021-10-31 09:11:43
![](https://img.aspxhome.com/file/2023/1/110031_0s.jpg)
文字链接,怎么办?
2008-08-04 13:18:00
![](https://img.aspxhome.com/file/UploadPic/20088/4/20088413222403s.gif)
利用python实现可视化大屏
2023-08-17 17:29:17
![](https://img.aspxhome.com/file/2023/9/65489_0s.png)