Python执行shell命令相关
admin
2023-07-30 21:14:15
0

导语

在编写python脚本的时候,偶尔想调用shell命令来执行一些操作会比较方便些。python中目前有多种方法可以达到这样的目的,有的仅仅是执行命令不返回需要的结果,有些可以返回执行的结果保存到变量,以便于后续操作

涉及到的模块有 os.systemcommandssubprocess


下面以具体的例子说明情况

#!/usr/bin/env bash 

import os
import commands
import subprocess

# -- os.system() --
# execute shell command in sub-terminal and can not get the return result
result1 = os.system(\'ls -l .\')
print(\'result: \')
print(result1)
print(\'----------------------------------------\')

# -- os.popen() --
# execute and can get the return result
result2 = os.popen(\'ls -l\')
# file type
print(\'type: \', type(result2))

result3 = os.popen(\'ls -l\').readlines()
# list file
print(\'type: \', type(result3))
print(\'result: \')
print(result3)
print(\'----------------------------------------\')

# -- commands --
# import commands
# method:
#    getoutput
#    getstatusoutput
result4 = commands.getoutput(\'ls -l\')
print(\'result: \')
print(result4)
print(\'=======\')
result5_status, result5_output = commands.getstatusoutput(\'ls -l\')
print(\'status: \', result5_status)
print(\'output: \')
print(result5_output)
print(\'----------------------------------------\')



# subprocess
# import subprocess
# method:
#    call([\"cmd\",\"arg1\", \"arg2\"], shell=True) refer to os.system()
#   Popen(\"cmd\", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) refer to os.popen
#
#result6 = subprocess.call(\"ls -l\", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
p = subprocess.Popen(\'ls *.txt\', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
print(p.stdout.readlines())

for line in p.stdout.readlines():
    print line,

## wait for child process to terminate, and turn returncode
retval = p.wait()
##  if ok, return 0
print(retval)

上一篇:Django学习笔记

下一篇:Django学习笔记

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...