赞
踩
直接上代码:
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)
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)
返回值是脚本执行过程中的输出内容
补充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() # 是否为文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。