一、os模块
os 模块在运维工作中是很常用的一个模块。通过os模块调用系统命令。os模块可以跨平台使用。
说明:os模块是对操作系统进行调用的接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
os.pardir
#获取当前目录的父目录字符串名:('..')
os.makedirs(
'dirname1/dirname2'
)
#可生成多层递归目录
os.removedirs(
'dirname1'
)
#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(
'dirname'
)
#生成单级目录;相当于shell中mkdir dirname
os.rmdir(
'dirname'
)
#删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(
'dirname'
)
#列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()
#删除一个文件
os.rename(
"oldname"
,
"newname"
)
#重命名文件/目录
os.stat(
'path/filename'
)
#获取文件/目录信息
os.sep
#输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep
#输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep
#输出用于分割文件路径的字符串
os.name
#输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system(
"bash command"
)
#运行shell命令,直接显示
os.environ
#获取系统环境变量
os.path.abspath(path)
#返回path规范化的绝对路径
os.path.split(path)
#将path分割成目录和文件名二元组返回
os.path.dirname(path)
#返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)
#返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)
#如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)
#如果path是绝对路径,返回True
os.path.isfile(path)
#如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)
#如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]])
#将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)
#返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)
#返回path所指向的文件或者目录的最后修改时间
在 import os
的时候,建议使用import os
而非from os import *
。这样可以避免os.open()
不会覆盖内置函数open()
.
(1)os.name()
判断系统类型
import os
print os.name
# linux和Unix系统会返回`posix`
# windows 系统会返回`nt`
(2)os.system()
执行系统命令的模块,返回命令执行的状态码,开启一个子shell执行命令
import os
cmd = 'ifconfig'
retval = os.system(cmd)
print retval
# 结果为 0
# 表示命令执行成功,否则为失败
(3)os.popen()
popen
也是去执行一个命令,不过相比system(cmd),os.popen(command [, mode='r' [, bufsize]]),参数更多,而且是开启一个管道去执行。
- cmd - 执行的命令
- mode - 模式权限可以是'r'(默认)或'w'
- buffering - 0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。(不明白????)
import os
cmd = 'mkdir nwdir'
a = os.popen(cmd)
print a
print type(a)
#返回结果
#<os._wrap_close object at 0x105af0860>
#<class 'os._wrap_close'>
(4)os.listdir(path)
打印指定目录的文件,返回一个列表