Python 调用外部命令

python 可以使用 os 模块来调用外部的 Linux Shell 命令,常用的方法如下:

(1) os.system():结果输出在终端上,捕获不到
(2) os.popen() : 结果返回一个对象,即标准输出
(3) os.popen2():结果返回两个对象,分别是标准输入,标准输出
(4) os.popen3():结果返回三个对象,分别是标准输入,标准输出,标准错误输出
(5) os.popen4():结果返回两个对象,分别是标准输入,标准输出(标准输出中包括标准错误输出)

In [2]: stdout = os.system(‘ls /data‘)    # os.system() --- 结果输出在终端上,会返回执行命令的状态码,我们可以用变量来接收
1.txt  2.txt  3.txt

In [3]: print(stdout)
0
In [7]: stdout = os.popen(‘ls /data‘)    # os.popen() --- 结果返回一个对象,即标准输出,标准输出需要用read()、readlines()等方法读取

In [8]: print stdout.read()
1.txt
2.txt
3.txt
In [24]: stdin, stdout = os.popen2(‘cat‘)    # os.popen2() --- 结果返回两个对象,分别是标准输入,标准输出

In [25]: stdin.write(‘hello\n‘)              # 我们使用 write() 来进行输入,使用 close() 来结束输入,使用 read() 来读取输出

In [26]: stdin.write(‘world\n‘)

In [27]: stdin.close()

In [28]: print stdout.read()
hello
world

原文地址:https://www.cnblogs.com/pzk7788/p/10300734.html

时间: 2024-10-11 00:19:00

Python 调用外部命令的相关文章

python调用外部命令

os.system:  输出在终端上,捕捉不到 os.popen:  只能捕捉到标准输出,捕捉不到标准错误输出 os.popen2: 返回2个对象,一个是标准输入,一个是标准输出 os.popen3: 返回3个对象,标准输入,标准输出,标准错误输出 os.popen4: 返回2个对象,pip_in 和pip_out_err os.system:  输出在终端上,捕捉不到 In [4]: os.system('ls')                                        

关于调用外部命令时与外部命令的数据交互的注意点

前两天,我打算下载点图片.用fiddler分析了下,结果那个网页大量使用js来操作cookie,弄得我头大. go倒是有V8引擎的封装包,可是必须还得编译这个引擎,挺麻烦的. 想起来还有selenium-python可以用.就决定这个了.因为selenium没有python3.4的版本,不得不重装了python2.7. 多说一句,python3确实比python2的组织等各个方面改进很多,写起来感觉更好.可惜第三方库稀少是硬伤. 当时我的思路是这样的,用python和selenium来操作浏览器

python 调用shell命令三种方法

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器: #!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里. python调用shell命令的方法有许多 1.1   os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准库函数system()实现的.这个函数在执行comman

python调用shell命令

1.1   os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准库函数system()实现的.这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. 1.2   os.popen(command,mode) 打开一个与command进程之间的管道.这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是'r').如果mode为'r',可以

Python调用外部系统命令

利用Python调用外部系统命令的方法可以提高编码效率.调用外部系统命令完成后可以通过获取命令执行返回结果码.执行的输出结果进行进一步的处理.本文主要描述Python常见的调用外部系统命令的方法,包括os.system().os.popen().subprocess.Popen()等. 1.subprocess模块 优先介绍subprocess模块的是由于该模块可以替代旧模块的方法,如os.system().os.popen()等,推荐使用.subporcess模块可以调用外部系统命令来创建新子

Perl调用外部命令的方式和区别

主要的方式简述如下:1. system("command");使用该命令将开启一个子进程执行引号中的命令,父进程将等待子进程结束并继续执行下面的代码. 2. exec("command");效果同system命令类似,区别是不会开启子进程,而是取代父进程,因此执行完引号中的命令后进程即结束.一般和fork配合使用. 3. `command`;使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车.反引号中的变量在编译时会被内插为其值. 4. o

Python调用7zip命令实现解压

Python调用7zip命令实现文件批量解压 1.输入压缩文件所在的路径 2.可以在代码中修改解压到的文件路径和所需要解压的类型,列入,解压文件夹下面所有的mp4格式的文件 3.cmd 指的就是Python调用dos命令 ,紧跟着的x -r这些全是参考7zip使用书册,及抽取文件夹下所有的以mp4结尾的文件,把文件放入e盘,测试解压文件夹下的new文件夹 # 调用7z命令批量解压文件 import os folder_name = input("请输入文件夹:") os.chdir(f

Perl调用外部命令(其他脚本、系统命令)的方法和区别

1. `command`; 使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车.反引号中的变量在编译时会被内插为其值. 2. open LIST "ls -l|";    open MORE "|more";    @list=<LIST>;    print MORE @list;    close(LIST);    close(MORE);使用带管道的文件句柄来执行外部命令,使用方式与读写文件类似.可以从外部命令的输出读取

python 调用shell命令的方法

在python程序中调用shell命令,是件很酷且常用的事情…… 1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的. 缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. 实例:os.system('ls -l *') 2. os.popen(command,