1. os模块相关操作:
os模块主要处理操作系统的相关的功能
os.name 获取操作系统平台
os.getcwd() 获取现在的工作目录
os.listdir() 获取某个目录下的所有文件名
os.system() 用来运行shell命令
os.remove() 删除某个文件
os.path.exists() 检验给出的路径是否真地存在
os.path.isfile() 判断是否为文件;若是,返回值为真
os.path.isdir() 判断是否为文件夹;若是,返回值为真
os.path.abspath(name) 获得绝对路径
os.path.splitext() 分离文件名与扩展名
os.path.split() 把一个路径拆分为目录+文件名的形式
os.path.join(path,name) 连接目录与文件名或目录
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
操作系统相关调用和操作:
os.environ 一个dictionary 包含环境变量的映射关系
os.environ[“HOME”] 可以得到环境变量HOME的值
os.chdir(dir) 改变当前目录 os.chdir(‘d:\outlook’) 注意windows下用到转义
os.getcwd() 得到当前目录
os.getegid() 得到有效组
id os.getgid() 得到组id
os.getuid() 得到用户id
os.geteuid() 得到有效用户id
os.setegid os.setegid() os.seteuid() os.setuid() 设置id
os.getgruops() 得到用户组名称列表
os.getlogin() 得到用户登录名称
os.getenv 得到环境变量
os.putenv 设置环境变量
os.umask 设置umask
os.system(cmd) 利用系统调用,运行cmd命令
2. 操作文件和目录
操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。查看、创建和删除目录可以这么调用:
#查看当前目录的绝对路径:
>>> os.path.abspath('.')'/Users/michael'
#在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
>>> os.path.join('/Users/michael', 'testdir')'/Users/michael/testdir'
#然后创建一个目录:
>>> os.mkdir('/Users/michael/testdir')#删掉一个目录:
>>> os.rmdir('/Users/michael/testdir')
把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符
同样的道理,要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名:
>>> os.path.split('/Users/michael/testdir/file.txt')
('/Users/michael/testdir', 'file.txt')
os.path.splitext()可以直接让你得到文件扩展名:
>>> os.path.splitext('/path/to/file.txt')
('/path/to/file', '.txt')
#对文件重命名:
>>> os.rename('test.txt', 'test.py')#删掉文件:
>>> os.remove('test.py')
复制文件的函数居然在os模块中不存在!
幸运的是shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充。
>>> [x for x in os.listdir('.') ifos.path.isdir(x)]
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]>>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']
3.os.path主要方法
以下是 os.path 模块的几种常用方法:
方法说明
os.path.abspath(path)
返回绝对路径
os.path.basename(path)
返回文件名
os.path.commonprefix(list)
返回list(多个路径)中,所有path共有的最长的路径
os.path.dirname(path)
返回文件路径
os.path.exists(path)
路径存在则返回True,路径损坏返回False
os.path.lexists
路径存在则返回True,路径损坏也返回True
os.path.expanduser(path)
把path中包含的"~"和"~user"转换成用户目录
os.path.expandvars(path)
根据环境变量的值替换path中包含的"$name"和"${name}"
os.path.getatime(path)
返回最近访问时间(浮点型秒数)
os.path.getmtime(path)
返回最近文件修改时间
os.path.getctime(path)
返回文件 path 创建时间
os.path.getsize(path)
返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)
判断是否为绝对路径
os.path.isfile(path)
判断路径是否为文件
os.path.isdir(path)
判断路径是否为目录
os.path.islink(path)
判断路径是否为链接
os.path.ismount(path)
判断路径是否为挂载点
os.path.join(path1[, path2[, ...]])
把目录和文件名合成一个路径
os.path.normcase(path)
转换path的大小写和斜杠
os.path.normpath(path)
规范path字符串形式
os.path.realpath(path)
返回path的真实路径
os.path.relpath(path[, start])
从start开始计算相对路径
os.path.samefile(path1, path2)
判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)
判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2)
判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path)
把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path)
一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path)
分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)
把路径分割为加载点与文件
os.path.walk(path, visit, arg)
遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames
设置是否支持unicode路径名
4. os主要方法
os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示:
序号方法及描述
8
9
10
11
12
13
14
16
17
18
19
20
22
23
24
26
27
28
29
30
31
32
33
34
35
36
37
os.mknod(filename[, mode=0600, device])
创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。
38
39
41
43
45
47
48
49
50
52
54
55
56
os.tempnam([dir[, prefix]])
Python3 中已删除。返回唯一的路径名用于创建临时文件。
57
os.tmpfile()
Python3 中已删除。返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。
58
os.tmpnam()
Python3 中已删除。为创建一个临时文件返回一个唯一的路径
59
61
63
64