1.软文推荐

2.软文推荐

3.软文推荐

这篇文章主要给大家分享在Python中执行cmd,下文描述了三个方法使用os.system()方法、使用os.popen()方法、使用subprocess.Popen(),需要的朋友可以参考一下

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()是非阻塞的。

本文来源:www.lxlinux.net/9540.html,若引用不当,请联系修改。

相关文章 8

1

苏苏云(苏苏云云墨琛) 54秒前

目录:1、五原罪云苏苏的结局是什么2、死亡约定五原罪云苏苏的结局是什么 电影《原罪》的结局是:安吉丽娜在被处刑前和一个神父谈话...

2

讲解PostgreSQL解析URL的方法 3分钟前

尽管PostgreSQL中支持大量的数据类型,但是对于URL似乎并没有一个相应的类型能够去存储。那么对于URL的数据我们在数据库中要怎么去处理呢...

3

Linux下操作 pcap 文件具体方法 6分钟前

pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据...

4

Linux下查看服务状态具体方法 8分钟前

Linux下如何查看服务的状态,本篇文章将为大家分享一下Linux下查看服务状态的方法, 有需要的小伙伴可以参考一下。 1. # ps aux | grep 服务名...

5

iis建站步骤(创建iis网站) 10分钟前

目录:...

7

Linux中的虚拟网络 14分钟前

虚拟化是当今计算机及网络领域热门的技术方向之一,在某种程度上它为用户屏蔽了计算机底层异构系统的复杂性,带给用户操作及管理计...

8

简单介绍可定制react18 input otp 一次性密码输入组件 16分钟前

这篇文章主要为大家介绍了可定制react18 input otp 一次性密码输入组件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...