python之os模块详解编程语言

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:/ 

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/20918.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论