最近了解了一下python的popen
函数的使用,主要是用来执行linux命令
函数使用
使用之前需要导入import os
模块
- 使用方式:
os.popen(cmd)
- 返回值: 返回一个文件句柄
import os
cmd="/sbin/partx /dev/sdb"
result_list=os.popen(cmd)
print result_list
执行结果如下,返回了一个文件地址:
<open file '/sbin/partx /dev/sdb', mode 'r' at 0x7f4b0f0fe810>
获取执行内容
如果想要获取popen执行命令的文件内容,那么可以使用如下几个函数
- read() 读取整个文件,并将整个文件放入一个字符串变量中
- readline() 每次读取一行,返回一个字符串对象并保留当前行的内存
- readlines() 读取整个文件,并将整个文件按行解析成列表
#/bin/cat test.txt
#a
#bb
#c
import os
cmd="/bin/cat test.txt "
#read()函数读取整个文件放入一个字符串,该返回值类型为str字符串
os.popen(cmd).read()
#执行结果如下:
'a\nbb\nc\n\n'
#readline()函数 读取一行,该返回值类型为str字符串
os.popen(cmd).readline()
#执行结果如下
'a\n'
#readlines()函数 读取整个文件并按行解析列表,该返回值类型为list
os.popen(cmd).readlines()
#执行结果如下
['a\n', 'bb\n', 'c\n', '\n']
注意
在想要使用popen
搭配几个read
函数获取命令执行结果时请务必注意换行符\n
,进行字符串处理时需对该\n
符进行处理