如何在Python中调用Windows的cmd命令?

news/2025/2/15 18:28:30/

简 介: 利用os,commands,subprocess模块可以在python中调用windows中的命令。从使用方便性上来看,利用os.popen可以执行windows的程序并可以获得返回内容。

关键词 pythoncmd

WindowsCmd命令
目 录
Contents
python的os模块
commands模块
subprocess模块
总 结

 

§01 WindowsCmd命令


  Python程序中,经常需要调用Windows的命令,比如 ipconfigcopy等等。

1.1 python的os模块

  os模块调用CMD命令有两种方式:os.popen()os.system() 都是用当前进程来调用。

1.1.1 s.system

  os.system是无法获取返回值的。当运行结束后接着往下面执行程序。

  用法如:os.system(ipconfig”)

os.system('ipconfig')

1.1.2 s.popen

  OS.popen带返回值的,如何获取返回值。

如下:

    p = os.popen(cmd)

  print p.read() #得到的是个字符串。

p = os.popen('ipconfig')
print("p.read(): {}\n".format(p.read()))
p.read():
Windows IP 配置
无线局域网适配器 无线网络连接 3:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 Bluetooth 网络连接:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 无线网络连接 2:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::a550:dea5:d853:dcf5%14
IPv4 地址 . . . . . . . . . . . . : 192.168.0.114
子网掩码  . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1
以太网适配器 本地连接 2:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 本地连接:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 Reusable ISATAP Interface {FF583AEB-A077-4492-912F-C8CB1D0A5CBF}:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 isatap.{77438403-0779-444D-94E4-91A7E3E86D14}:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 isatap.{0FCDFE30-7264-4C7B-9A3B-7E8830C6AC7F}:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 isatap.{B466CF48-E9DB-40AF-9850-0030E5BDBCB7}:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 Teredo Tunneling Pseudo-Interface:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 isatap.{C0EE8E60-50EE-4A9F-9AF8-2DF0275A8AEA}:
媒体状态  . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :

  这两个函数都是当前进程调用,属于阻塞式调用方式。

1.2 commands模块

方法说明
getoutput获取执行命令后的返回信息
getstatus获取执行命令的状态值(执行命令成功返回数值0,否则返回非0)
getstatusoutput获取执行命令的状态值以及返回信息

  经过测试,无法安装commands 模块。

1.3 subprocess模块

import subprocess
nowtime = subprocess.Popen('date', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)print("nowtime.stdout.read(): {}\n".format(nowtime.stdout.read()))
nowtime.stdout.read(): b'\xb5\xb1\xc7\xb0\xc8\xd5\xc6\xda: 2022/01/12 \xd6\xdc\xc8\xfd \r\n\xca\xe4\xc8\xeb\xd0\xc2\xc8\xd5\xc6\xda: (\xc4\xea\xd4\xc2\xc8\xd5) '

 

  结 ※


  用os,commands,subprocess模块可以在python中调用windows中的命令。从使用方便性上来看,利用os.popen可以执行windows的程序并可以获得返回内容。



http://www.ppmy.cn/news/116611.html

相关文章

索尼美能达50微-版本区别及实拍测评(sony/minolta)50 f2.8 macro

索尼美能达50微-版本区别及实拍测评(sony/minolta)50 f2.8 macro http://www.360doc.com/content/13/0816/15/187781_307594573.shtml http://www.lao8.org/article_932/html/8/2011-4-2/sony_minolta_50_f2.8_macro.html 分类: 摄影 by&…

a5

3.3.5 业务设计 3.3.6 数据库说明 3.3.7 本地化差异 3.3.8 外部接口说明 3.3.9 历史问题描述 3.4 信用度调查业务详细描述 3.4.1 功能概述 3.4.2 应用场景描述 3.4.3 主要功能 3.4.4 总体流程图 3.4.5 数据流图 3.4.6 业务设…

基于SpringBoot和BootStrap的全栈论坛网站(附上源码)

耗时大约三个星期不到的时间,把这个论坛项目基本上算是完成了,做这个项目最主要的目的是熟悉SpringBoot的使用,然后通过整个项目了解了BootStrap、Thymeleaf、editor.md等等工具的使用,今天就来做一下总结 (一&#x…

phpExcel导出excel打不开问题

关于phpExcel导出excel之后打开不了的问题 情况说明: 我相信很多人用过phpExcel这个类库都会遇到的一个问题就是,导出excel表格文件后(xls或xlsx文件),打开这个文件既然显示 然后网上也很多解决办法,主要看大家的情况…

9种常见的INTERNET接入方式

9种常见的INTERNET接入方式 提到接入网,首先要涉及一个带宽问题,随着互联网技术的不断发展和完善,接入网的带宽被人们分为窄带和宽带,业内专家普遍认为宽带接入是未来发展方向。 宽带运营商网络结构如图1所示。整个城市网络由核心…

a55计算机主板,A55架构简介与A55主板赏析

A55架构简介与主板赏析: A55 FCH芯片架构 FCH芯片的角色大概相当于以往的南桥芯片,自身并没有整合显示核心,而是通过UMI接口(而不是HT总线)连接APU整合的显示核心进行输出。A55 FCH能提供4条芯片PCI-E 2.0通道、14个USB2.0接口、6个支持RAID 0/1/10的SATA2.0接口,并且支持最…

pytorch张量基本操作、卷积池化介绍、简单神经cnn网络搭建和训练示例

张量基本操作、卷积池化介绍、简单神经cnn网络搭建和训练示例 第一章 pytorch介绍第二章 pytorch中张量的数据类型介绍第三章 pytorch张量的基本操作3.1 创建张量3.2 张量操作3.3 张量索引3.4. 自动求导 第四章 PyTorch中卷积、池化、激活函数、全连接层介绍4.1 卷积层4.2 池化…

mysql中的锁浅析

前言 MySQL 锁机制是保证多个并发事务同时访问数据库时数据一致性的重要手段,也是 MySQL 的重要特性之一。在实际开发使用 MySQL 数据库时,了解并掌握 MySQL 的锁机制非常重要,因为不正确的锁机制使用很容易出现严重的性能瓶颈和数据不一致等…