Python - os模块


os.path.abspath:获取文件或目录的绝对路径

os.path.dirname:获取文件或文件夹的路径

os.path.basename:获取文件名或文件夹名

os.path.splitext:分离文件名与扩展名

os.path.isfile/os.path.isdir:判断是否是文件/目录

os.walk:遍历目录
 1 """
 2 os模块
 3 """
 4 import os
 5 
 6 """os.path.abspath:获取文件或目录的绝对路径"""
 7 # 当前问价所在的目录  D:\python\demo
 8 print(os.path.abspath('.'))
 9 
10 # 当前文件的绝对路径  D:\python\demo\test.py
11 print(os.path.abspath(__file__))
12 
13 # 当前文件同级目录下的xxx.py文件路径,这里只是打印路径,即使文件不存在,也会输出这个路径
14 # D:\python\demo\xxx.py
15 print(os.path.abspath('xxx.py'))
16 
17 """os.path.dirname:获取文件或文件夹的路径"""
18 # 输出  D:/python/demo  斜杠跟abspath不一样
19 print(os.path.dirname(__file__))
20 # 输出空
21 print(os.path.dirname('xxx.py'))
22 # 输出subfolder
23 print(os.path.dirname('subfolder/xxx.py'))
24 
25 """os.path.basename:获取文件名或文件夹名"""
26 # 输出当前文件名  test.py
27 print(os.path.basename(__file__))
28 # 输出 xxx.py
29 print(os.path.basename('/subfolder/xxx.py'))
30 # 输出空
31 print(os.path.basename('/subfolder/'))
32 # 输出subfolder
33 print(os.path.basename('/subfolder'))
34 # 输出subfolder
35 print(os.path.basename('subfolder'))
36 # 综上,basename实际输出最后一个斜杠后的字符串
37 
38 """os.path.splitext:分离文件名与扩展名"""
39 # 输出 ('D:/python/demo/test', '.py')
40 print(os.path.splitext(__file__))
41 # 输出  ('test', '.py')
42 print(os.path.splitext('test.py'))
43 # 输出 ('/subfolder', '')
44 print(os.path.splitext('/subfolder'))
45 
46 """os.path.isfile/os.path.isdir:判断是否是文件/目录"""
47 print(os.path.isfile(__file__))   # True
48 print(os.path.isfile('D:/python/demo/test.py'))  # True
49 print(os.path.isfile('D:/python/demo'))    # False
50 print(os.path.isdir('D:/python/demo/test.py'))   # False
51 print(os.path.isdir('D:/python/demo'))     # True
52 # 路径必须存在,否做判断为False
53 
54 """os.walk:遍历目录"""
55 for root, dirs, files in os.walk(os.path.dirname(__file__)):  # 当前文件的目录
56     print(root)   # 目录
57     print(dirs)   # 列表:目录下的子目录
58     print(files)   # 列表:目下下的文件
59 
60 for r, d, f in os.walk('D:/python/demo'):
61     print(r)
62     print(d)
63     print(f)