os模块就是python和操作系统交互的模块
1、os.getcwd,获取当前的工作脚本的工作目录
r = os.getcwd() print(r) # E:\python\pycharm\goto_end\week2\模块系列
2、os.chdir,改变当前脚本的工作目录,相当于linux命令中的cd
tmp_path = "c:/tmp" #先定义一个路径 print(os.getcwd()) #查看当前的工作路径 # E:\python\pycharm\goto_end\week2\模块系列 os.chdir(tmp_path) #使用os.chdir命令切换工作路径到指定的目录 print(os.getcwd()) #再次使用os.getcwd来获取当前的工作路径 # c:\tmp
3、os.curdir这个方法目前不会使用,网上也没有查到相关的资料
4、os.pardir,获取当前目录的父目录的名称,我们可以看到,父目录其实就是“..”
tmp_path = "E:\python\pycharm\goto_end\week2\模块系列" os.chdir(tmp_path) #使用os.chdir方法切换当前的工作目录到tmp_path中 print(os.getcwd()) #使用os.getcwd获取当前的工作目录 print(type(os.pardir),os.pardir,sep="\n") #打印os.pardir的类型和值,可以看到是字符串类型,值为".."和linxu中的一样 # <class 'str'> # ..
5、os.makedirs,创建多级目录
# os.makedirs() print("==========os.makedirs===============") tmp_path = "c:/tmp" os.chdir(tmp_path) print(os.getcwd()) make_path = "c:/tmp/a/b/c" # os.makedirs(make_path) #可以看到目录已经创建成功C:\tmp\a\b\c
6、os.removedirs 如果层级目录全部为空,则会递归删除,直到最后一个父目录
s = "os.removedirs" print(s.center(40,"=")) # make_path = "c:/tmp/a/b/c" # os.removedirs(make_path) 删除指定的目录,查看已经删除了
7、os,makedir,创建单级目录
# os.mkdir() s = "os.mkdir" print(s.center(40,"=")) # make_path = "c:/tmp/a" # os.mkdir(make_path) 可以看到在指定目录下创建了a这个目录
8、os.rmdir,删除单级目录
# os.rmdir() s = "os.rmdir" print(s.center(40,"=")) # make_path = "c:/tmp/a" # os.rmdir(make_path) 可以看到a这个目录已经被删除了
9、os.listdir,列出指定目录下的文件和目录
# os.listdir() s = "os.listdir" print(s.center(40,"=")) # list_dir = "F:\BaiduNetdiskDownload\第一部分\第一部分" # print(os.listdir(list_dir))
10、os.remove删除文件
# os.remove() s = "os.remove" list_path = "c:/tmp" remove_path = "C:/tmp/a.txt" print(s.center(40,"=")) # print(os.listdir(list_path)) # ['a.txt'] # os.remove(remove_path) # # print(os.listdir(list_path)) # []
11、os.rename,重命名文件或者目录
os.rename("oldname","newname") s = "os.rename" print(s.center(40,"=")) rename_dir = "c:/2" rename_file = "C:/tmp/a.txt" print(os.listdir(rename_dir)) os.rename(rename_file,"c:/tmp/a_new.txt") print(os.listdir(rename_dir)) print(os.listdir("c:/")) os.rename(rename_dir,"c:/1") print(os.listdir("c:/"))
12、os.stat获取文件或者目录的信息
# os.stat("path/filename") s = "os.stat" print(s.center(40,"=")) stat_dir = "c:/1" stat_file = "c:/tmp/a_new.txt" print(os.stat(stat_dir))
这里可以获取到很多的信息,但是我们一般最常用的就是获取这个文件的字节大小,获取字节大小可以用下面的方法获取
# os.stat_result(st_mode=16895, st_ino=9288674231537252, st_dev=1014518766, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1499562788, st_mtime=1499562788, st_ctime=1499562788) print(os.stat(stat_file)) # os.stat_result(st_mode=33206, st_ino=43910096366946995, st_dev=1014518766, st_nlink=1, st_uid=0, st_gid=0, st_size=16, st_atime=1499562688, st_mtime=1499562696, st_ctime=1499562688)
13、os.set这个方法不会使用,网上也没有查到相关的信息
14、os.linesep,输出当前平台的换行符
s = "os.linesep" print(s.center(40,"=")) print(list(os.linesep)) # ['\r', '\n']
15、os.pathsep,输出用于分割文件路径的字符串
s = "os.pathsep" print(s.center(40,"=")) print(list(os.pathsep)) # [';']
16、os.name,输入当前平台的操作系统,windows--->nt,linux为posi
s = "os.name" print(s.center(40,"=")) print(os.name) # nt
17、os.system,执行操作系统的命令,因为我这里是windows,所有我就只能执行windows的系统命令
s = "os.system" print(s.center(40,"=")) os.system("ipconfig")
18、os.environ,获取操作系统的环境变量
s = "os.environ" print(s.center(40,"=")) print(os.environ) # environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Administrator\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': '97ODP8DJGDRURUA', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'FP_NO_HOST_CHECK': 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\Administrator', 'LOCALAPPDATA': 'C:\\Users\\Administrator\\AppData\\Local', 'LOGONSERVER': '\\\\97ODP8DJGDRURUA', 'MOZ_PLUGIN_PATH': 'C:\\Program Files\\Foxit Software\\Foxit Reader\\plugins\\', 'NUMBER_OF_PROCESSORS': '2', 'OS': 'Windows_NT', 'PATH': 'C:\\Program Files\\NVIDIA Corporation\\PhysX\\Common;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'x86', 'PROCESSOR_IDENTIFIER': 'x86 Family 6 Model 37 Stepping 5, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '2505', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\', 'PUBLIC': 'C:\\Users\\Public', 'PYCHARM_HOSTED': '1', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'E:\\python\\pycharm', 'PYTHONUNBUFFERED': '1', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\Administrator\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\Administrator\\AppData\\Local\\Temp', 'USERDOMAIN': '97ODP8DJGDRURUA', 'USERNAME': 'Administrator', 'USERPROFILE': 'C:\\Users\\Administrator', 'WINDIR': 'C:\\Windows', 'WINDOWS_TRACING_FLAGS': '3', 'WINDOWS_TRACING_LOGFILE': 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log'})
20、os.abspath,返回指定path的规范化绝对路径,这里真没看懂什么意思,感觉实际测试的结果没有什么区别
s = "os.path.sbspath" print(s.center(40,"=")) abs_path = "F:\BaiduNetdiskDownload\第一部分\第一部分" print(os.path.abspath(abs_path)) # F:\BaiduNetdiskDownload\第一部分\第一部分
21、os.path.split,把文件名和目录分割,然后放在一个tuple中,这里的文件名包括文件及其上一级目录
# os.path.split() s = "os.path.split" print(s.center(40,"=")) split_path = "F:\BaiduNetdiskDownload\第一部分\第一部分\0085-上节内容回顾2.avv" print(os.path.split(split_path)) # ('F:\\BaiduNetdiskDownload\\第一部分', '第一部分\x0085-上节内容回顾2.avv')
22、os.path.dirname,返回指定路径的目录
s = "os.path.dirname" print(s.center(40,"=")) dir_name = "F:\BaiduNetdiskDownload\第一部分\第一部分\0085-上节内容回顾2.avv" print(os.path.dirname(dir_name)) # F:\BaiduNetdiskDownload\第一部分
23、os.path.basename,返回指定路径的文件名
s = "os.path.basename" dir_name = "F:\BaiduNetdiskDownload\第一部分\第一部分\0085-上节内容回顾2.avv" print(s.center(40,"=")) print(os.path.basename(dir_name)) # 第一部分 85-上节内容回顾2.avv #这里我们可以和os.path.split的方法比较,发现python认为的文件名要包括文件名以及他的上一级目录
24、os.path.exists,指定的路径如果存在,则返回True,如果不存在,则返回False
s = "os.path.exists" print(s.center(40,"=")) exists_dir = "F:\BaiduNetdiskDownload\第一部分\第一部分" print(os.path.exists(exists_dir)) exists_dir = "F:\BaiduNetdiskDownload\第一部分\第一1部分" print(os.path.exists(exists_dir)) # True # False
25、os.path.isabs,指定的路径如果是绝对路径,则返回True,如果不是,则返回False
s = "os.path.isabs" print(s.center(40,"=")) abs_dir = "F:\BaiduNetdiskDownload\第一部分\第一部分" print(os.path.isabs(abs_dir)) abs_dir = "BaiduNetdiskDownload\第一部分\第一部分" print(os.path.isabs(abs_dir)) # # True # False
26、os.path.isfile,指定的如果是文件,则返回True,如果是目录则返回False
s = "os.path.isfile" print(s.center(40,"=")) print(os.getcwd()) # c:\tmp dir_name = "a_new.txt" print(os.path.isfile(dir_name)) # True dir_name = "C:\tmp\a_new.txt" print(os.path.isfile(dir_name)) # False
27、os.path.isdir,指定的路径如果是目录,则返回True,如果是文件则返回False
s = "os.path.isdir" print(s.center(40,"=")) dir_name = "E:/360" print(os.path.isdir(dir_name)) dir_name = "a_new.txt" print(os.path.isfile(dir_name))
28、os.path.gatetime,返回指定的目录或者文件的最后的存取时间
s = "os.path.getatime" print(s.center(40,"=")) getatime_path = "c:/tmp/a_new.txt" print(os.path.getatime(getatime_path)) # 1499562688.7266502
29、os.path.gatmtime,返回指定的目录或者文件的最后修改时间
s = "os.path.getmtime" print(s.center(40,"=")) getatime_path = "c:/tmp/a_new.txt" print(os.path.getmtime(getatime_path)) # 1499562696.1190732
30、获取文件的大小可以这样获取
a = os.stat("D:\iso\oracle\RAC模板部署视频.exe") print(a.st_size)
31、通过dirname可以获取指定路径的父路径的绝对路径,可以看下面的例子,这个到导入模块的时候用的比较多
a = os.path.dirname("D:\iso\oracle\RAC模板部署视频.exe") print(a) # D:\iso\oracle b = os.path.dirname(a) print(b) # D:\iso c = os.path.dirname(b) print(c) # D:\