day5-os和shutil模块
os 模块
提供了非常丰富的方法用来处理文件和目录。常用的方法如下
1.os.getcwd()
用法:获取当前工作目录,即当前python脚本工作的目录路径
>>> os.getcwd() '/Users/huwei'
2.os.chdir("dirname")
用法:改变当前脚本工作目录;相当于shell下cd
>>> os.chdir("/Users/huwei/PycharmProjects/s14/module_2") >>> os.getcwd() '/Users/huwei/PycharmProjects/s14/module_2'
3.os.curdir
用法:返回当前目录:('.')
>>> os.curdir '.'
4.os.pardir
用法:获取当前目录的父目录字符串名:('..')
>>> os.pardir '..'
5.os.makedirs('dirname1/dirname2')
用法:可生成多层递归目录
>>>os.makedirs("dick/hu") >>> os.getcwd() '/Users/huwei/PycharmProjects/s14/module_2' >>> os.chdir("/Users/huwei/PycharmProjects/s14/module_2/dick/hu")
6.os.removedirs('dirname1')
用法:若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
>>> os.makedirs("test/dick/hu/huwei/123") >>> os.removedirs("test/dick/hu/huwei/123")
7.os.mkdir('dirname')
用法:生成单级目录;相当于shell中mkdirdirname
>>> os.mkdir("bw") >>> os.listdir() ['.DS_Store', 'bw', 'dick']
8.os.rmdir('dirname')
用法:删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rm dirname
>>> os.rmdir("hu")
9.os.listdir('dirname')
用法:列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
>>> os.listdir() ['.bash_history', '.bash_profile', '.bash_profile.pysave', '.bash_sessions','.CFUserTextEncoding', '.DS_Store', '.idlerc', '.python_history', '.sogouinput', '.ssh', '.Trash', '.viminfo', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'PycharmProjects', 'test']
10.os.remove()
用法:删除一个文件
>>> os.getcwd() '/Users/huwei/test/dick/hu' >>> os.chdir("..") >>> os.getcwd() '/Users/huwei/test/dick' >>> os.remove("hu")
11.os.rename("oldname","newname")
用法:重命名文件/目录
os.rename("1.jpg","2.jpg")
12.os.stat('path/filename')
用法:获取文件/目录信息
>>> os.stat("/Users/huwei/test/dick/hu") os.stat_result(st_mode=16877, st_ino=1819381, st_dev=16777220, st_nlink=3, st_uid=501, st_gid=20, st_size=102, st_atime=1499875953, st_mtime=1499875777, st_ctime=1499875777)
13.os.sep
用法:输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
>>> os.sep '/'
14.os.linesep
用法:输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
>>> os.linesep '\n'
15.os.pathsep
用法:输出用于分割文件路径的字符串
>>> os.pathsep ':'
16.os.name
用法:输出字符串指示当前使用平台。win->'nt';Linux->'posix'
>>> os.name 'posix'
17.os.system("bashcommand")
用法:运行shell命令,直接显示
>>> os.system("ls") bw dick 0
18.os.environ
用法:获取系统环境变量
>>> os.environ environ({'USER': 'huwei', 'TERM_PROGRAM_VERSION': '3.0.15', 'PWD': '/Users/huwei', '_':'/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5', 'ITERM_SESSION_ID': 'w0t0p0:120C91EF-64B1-4330-9301-320D49925161', 'XPC_SERVICE_NAME': 'zh_CN.UTF-8', 'COLORFGBG': '7;0', 'TERM': 'xterm-256color'})
19.os.path.abspath(path)
用法:返回path规范化的绝对路径
>>> os.path.abspath("module1") '/Users/huwei/test/module1'
20.os.path.split(path)
用法:将path分割成目录和文件名二元组返回
>>> os.path.split("huwei") ('', 'huwei')
21.os.path.dirname(path)
用法:返回path的目录。其实就是os.path.split(path)的第一个元素
>>> os.path.dirname("huwei") ''
22.os.path.basename(path)
用法:返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
>>> os.path.basename("huwei") 'huwei'
23.os.path.exists(path)
用法:如果path存在,返回True;如果path不存在,返回False
>>> os.listdir() ['.DS_Store', 'bw', 'dick'] >>>os.path.exists("dick/hu") True
24.os.path.isabs(path)
用法:如果path是绝对路径,返回True
>>> os.path.isabs("dick/hu") False >>> os.path.isabs("/Users/huwei/test/dick/hu") True
25.os.path.isfile(path)
用法:如果path是一个存在的文件,返回True。否则返回False
>>> os.path.isfile("dick/hu/1.jpg") #文件存在 True
26.os.path.isdir(path)
用法:如果path是一个存在的目录,则返回True。否则返回False
>>> os.path.isdir("dick/hu") True >>> os.path.isdir("dick/hu/") True
27.os.path.join(path1[,path2[,...]])
用法:将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
>>> os.path.join("dick/hu") 'dick/hu'
28.os.path.getatime(path)
用法:返回path所指向的文件或者目录的最后存取时间
>>> os.getcwd() '/Users/huwei/test' >>> os.path.getatime("dick") 1499877476.0
29.os.path.getmtime(path)
用法:返回path所指向的文件或者目录的最后修改时间
>>> os.path.getmtime("dick") 1499875743.0
shutil模块
shutil(或称为shell 工具)模块中包含一些函数,让你在Python 程序中复制、移动、改名和删除文件。