os模块
os模块 提供对操作系统进行调用的接口
os.getcwd() 获取当前工作目录
>>> os.getcwd() 'C:\\Users\\AllenZhang'
os.chdir('dirname') 改变当前脚本的工作目录
>>> os.chdir('D:\\') >>> os.getcwd() 'D:\\'
os.curdir 返回当前目录
>>> os.curdir '.'
os.pardir 获取当前目录的父目录字符串名
>>> os.pardir '..'
os.makedirs() 可生成多层递归目录
>>> os.makedirs('1/2/3/4') # 当前目录生成1/2/3/4的目录
os.removedirs() 若目录为空,则删除,并递归到上一级目录,若也为空,则删除,以此类推
>>> os.removedirs('1/2/3/4') # 刚刚创建的4个目录都会删除
os.mkdir() 生成单级目录
os.rmdir() 删除单级空目录
>>> os.mkdir('tokyohot') >>> os.rmdir('tokyohot')
os.listdir() 列出指定目录下的所有文件和子目录,包括隐藏文件,以列表的方式打印
>>> os.chdir('D:\\sublime') >>> os.listdir() ['104844963', '104844963.7z']
os.remove() 删除一个文件
>>> os.chdir('D:\\') >>> os.listdir() ['$RECYCLE.BIN', '666', 'BaiduNetdisk', 'BaiduNetdiskDownload', 'Fedora Media Writer', 'GameDownload', 'JetbrainsCrack-2.7-release-str.jar', 'LightningZip', 'photoshop', 'Program Files', 'ps', 'PyCharm 2017.3.3', 'QMDownload', 'QQMusicCache', 'QQPCMgr', 'qqpcmgr_docpro', 'qycache', 'Recovery', 'study', 'sublime', 'Sublime Text3', 'System Volume Information', 'Thunder9', 'WeGame', 'work', 'XMPCache', 'Youku Files', 'zjz', '新建文件夹', '练习', '英雄时刻', '迅雷下载'] >>> os.remove('666') Traceback (most recent call last): File "<stdin>", line 1, in <module> PermissionError: [WinError 5] 拒绝访问。: '666' >>> os.remove('JetbrainsCrack-2.7-release-str.jar') >>> os.listdir() ['$RECYCLE.BIN', '666', 'BaiduNetdisk', 'BaiduNetdiskDownload', 'Fedora Media Writer', 'GameDownload', 'LightningZip', 'photoshop', 'Program Files', 'ps', 'PyCharm 2017.3.3', 'QMDownload', 'QQMusicCache', 'QQPCMgr', 'qqpcmgr_docpro', 'qycache', 'Recovery', 'study', 'sublime', 'Sublime Text3', 'System Volume Information', 'Thunder9', 'WeGame', 'work', 'XMPCache', 'Youku Files', 'zjz', '新建文件夹', '练习', '英雄时刻', '迅雷下载']
os.rename('oldname', 'newname')
>>> os.listdir() ['$RECYCLE.BIN', '666', 'BaiduNetdisk', 'BaiduNetdiskDownload', 'Fedora Media Writer', 'GameDownload', 'LightningZip', 'photoshop', 'Program Files', 'ps', 'PyCharm 2017.3.3', 'QMDownload', 'QQMusicCache', 'QQPCMgr', 'qqpcmgr_docpro', 'qycache', 'Recovery', 'study', 'sublime', 'Sublime Text3', 'System Volume Information', 'Thunder9', 'WeGame', 'work', 'XMPCache', 'Youku Files', 'zjz', '新建文件夹', '练习', '英雄时刻', '迅雷下载'] >>> os.rename('zjz', 'zjz3') >>> os.listdir() ['$RECYCLE.BIN', '666', 'BaiduNetdisk', 'BaiduNetdiskDownload', 'Fedora Media Writer', 'GameDownload', 'LightningZip', 'photoshop', 'Program Files', 'ps', 'PyCharm 2017.3.3', 'QMDownload', 'QQMusicCache', 'QQPCMgr', 'qqpcmgr_docpro', 'qycache', 'Recovery', 'study', 'sublime', 'Sublime Text3', 'System Volume Information', 'Thunder9', 'WeGame', 'work', 'XMPCache', 'Youku Files', 'zjz3', '新建文件夹', '练习', '英雄时刻', '迅雷下载']
os.stat() 获取文件/目录信息
>>> os.stat('D:\\') os.stat_result(st_mode=16895, st_ino=1407374883553285, st_dev=1314442825, st_nlink=1, st_uid=0, st_gid=0, st_size=8192, st_atime=1526694133, st_mtime=1526694133, st_ctime=1481854131)
os.sep 输出操作系统路径的分隔符
>>> os.sep '\\'
os.linesep 输出操作系统的换行符
>>> os.linesep # Windows '\r\n'
os.pathsep 输出分割路径的字符串(可参考下面环境变量的打印,路径之间用分号隔开)
>>> os.pathsep ';'
os.name 输出当前使用的平台
>>> os.name 'nt'
os.system('commond') 执行shell命令
os.environ 获取系统环境变量
>>> os.environ environ({'OS': 'Windows_NT', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'USERPROFILE': 'C:\\Users\\AllenZhang', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'TMP': 'C:\\Users\\ALLENZ~1\\AppData\\Local\\Temp', 'PROCESSOR_LEVEL': '6', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROGRAMW6432': 'C:\\Program Files', 'PROCESSOR_REVISION': '8e09', 'SESSIONNAME': 'Console', 'NUMBER_OF_PROCESSORS': '4', 'COMPUTERNAME': 'DESKTOP-PHT26D2', 'PUBLIC': 'C:\\Users\\Public', 'USERNAME': 'AllenZhang', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'HOMEPATH': '\\Users\\AllenZhang', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'TEMP': 'C:\\Users\\ALLENZ~1\\AppData\\Local\\Temp', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'USERDOMAIN': 'DESKTOP-PHT26D2', 'HOMEDRIVE': 'C:', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 142 Stepping 9, GenuineIntel', 'LOGONSERVER': '\\\\DESKTOP-PHT26D2', 'APPDATA': 'C:\\Users\\AllenZhang\\AppData\\Roaming', 'PROMPT': '$P$G', 'SYSTEMROOT': 'C:\\WINDOWS', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-PHT26D2', 'SYSTEMDRIVE': 'C:', 'WINDIR': 'C:\\WINDOWS', 'ONEDRIVE': 'C:\\Users\\AllenZhang\\OneDrive', 'PATH': 'C:\\Program Files (x86)\\Intel\\iCLS Client\\;C:\\Program Files\\Intel\\iCLS Client\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\nodejs\\;C:\\Python27\\;C:\\Python27\\Scripts;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Users\\AllenZhang\\AppData\\Local\\Programs\\Python\\Python35\\Scripts\\;C:\\Users\\AllenZhang\\AppData\\Local\\Programs\\Python\\Python35\\;C:\\Users\\AllenZhang\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\AllenZhang\\AppData\\Roaming\\npm;', 'LOCALAPPDATA': 'C:\\Users\\AllenZhang\\AppData\\Local', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMDATA': 'C:\\ProgramData'})
os.path.abspath(path) 返回path规范化的绝对路径
>>> os.listdir() ['$RECYCLE.BIN', '666', 'BaiduNetdisk', 'BaiduNetdiskDownload', 'Fedora Media Writer', 'GameDownload', 'LightningZip', 'photoshop', 'Program Files', 'ps', 'PyCharm 2017.3.3', 'QMDownload', 'QQMusicCache', 'QQPCMgr', 'qqpcmgr_docpro', 'qycache', 'Recovery', 'study', 'sublime', 'Sublime Text3', 'System Volume Information', 'Thunder9', 'WeGame', 'work', 'XMPCache', 'Youku Files', 'zjz3', '新建文件夹', '练习', '英雄时刻', '迅雷下载'] >>> os.chdir('英雄时刻') >>> os.listdir() ['65878343'] >>> os.path.abspath('./65878343') 'D:\\英雄时刻\\65878343'
os.path.split(path) 将path分割成目录和文件名二元组返回
>>> os.path.split('65878343') ('', '65878343')
os.path.dirname(path) 返回path的目录
>>> os.path.dirname('65878343') ''
os.path.basename(path) 返回path最后的文件名
>>> os.path.basename('英雄时刻_20170715-10点50分51s.avi') '英雄时刻_20170715-10点50分51s.avi'
os.path.exists(path) 返回布尔值,path是否存在
>>> os.path.exists('2') False
os.path.isabs(path) 是否为绝对路径
>>> os.path.isabs('英雄时刻_20170715-10点50分51s.avi') False
os.path.isfile(path) 是否为一个存在的文件
>>> os.mkdir('2') >>> os.listdir() ['2', '英雄时刻_20170715-10点50分51s.avi'] >>> os.path.isfile('2') False >>> os.path.isfile('英雄时刻_20170715-10点50分51s.avi') True
os.path.isdir(path) 是否为一个存在的目录
>>> os.listdir() ['2', '英雄时刻_20170715-10点50分51s.avi'] >>> os.path.isdir('2') True >>> os.path.isdir('英雄时刻_20170715-10点50分51s.avi') False
os.path.join(path1[, path2[, ...] ]) 将多个路径组合返回,第一个绝对路径之前的参数将被忽略
>>> os.path.join('D:\\', '2', '3') 'D:\\2\\3'
os.path.getatime(path) 返回path的最后存取时间
os.path.getmtime(path) 返回path的最后修改时间
>>> os.listdir() ['2', '英雄时刻_20170715-10点50分51s.avi'] >>> os.path.getatime('2') 1526695470.737427
>>> os.path.getmtime('2')
1526695470.73742