文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在Python中执行cmd

2024-04-02 19:55

关注

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()方法用于从一个命令打开一个管道。在UnixWindows中有效。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()是非阻塞的。

到此这篇关于在Python中执行cmd的文章就介绍到这了,更多相关Python中执行cmd内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯