用Python执行Linux命令

直接上代码:

import os   # 导入os模块

cmd1 = 'ls'   # 要执行的Linux命令放入单引号中(用于情况 1)
cmd2 = 'systemctl start ntpd.service'   #(用于情况 2)

# 情况 1:在子终端运行系统命令,不需要获取命令执行后的返回信息
os.system(cmd1)

# 情况 2:在子终端运行系统命令,并获取命令执行后的返回信息
textlist = os.popen(cmd2).readlines()
for line in textlist:   # 输出命令执行后的返回信息
	print(line)

Python调用shell命令

1、os.system(command)
在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

2、os.popen(command,mode)
打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r’)。如果mode为’r’,可以使用此函数的返回值调用read()来获取command命令的执行结果。

3、区别
os.system(cmd) 返回值是脚本的退出状态码
os.popen(cmd) 返回值是脚本执行过程中的输出内容

参考《Python调用shell命令》


补充os模块常见Linux命令有关方法:

os.remove() # 删除文件
os.rename() # 重命名文件
os.walk() # 生成目录树下的所有文件名
os.chdir() # 改变目录
os.mkdir/makedirs # 创建目录/多层目录
os.rmdir/removedirs # 删除目录/多层目录
os.listdir() # 列出指定目录的文件
os.getcwd() # 取得当前工作目录
os.chmod() # 改变目录权限
os.path.basename() # 去掉目录路径,返回文件名
os.path.dirname() # 去掉文件名,返回目录路径
os.path.join() # 将分离的各部分组合成一个路径名
os.path.getsize() # 返回文件大小
os.path.exists() # 是否存在
os.path.isabs() # 是否为绝对路径
os.path.isdir() # 是否为目录
os.path.isfile() # 是否为文件
GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐