簡(jiǎn)單介紹 os.path 模塊常用方法
os.path 在python中也算是一個(gè)常用的模塊,特別是和文件系統(tǒng)打交道時(shí),涉及到文件、目錄操作經(jīng)常會(huì)用到,你去看一些框架的源代碼的時(shí)候也經(jīng)常會(huì)使用到這些方法。
如果去看官方文檔,os.path 大概提供了近20個(gè)方法,其實(shí)比較常用的方法我總結(jié)的9個(gè),你可以跟著操作下,很容易就記住了。其實(shí)看方法名都知道具體是做什么的。
os.path.png
1、os.path.abspath
獲取文件的絕對(duì)路徑
- path = "test.py"
- print(os.path.abspath(path)) # C:\Users\lzjun\workspace\python_scripts\test.py
2、 os.path.basename
獲取文件名,不包含目錄部分, 如果該路徑本身就是個(gè)目錄,那么返回的就是空
- path = "C:/Users/lzjun/workspace/python_scripts/test_path.py"
- print(os.path.basename(path)) # test_path.py
- path = "../test/"
- print(os.path.basename(path)) # 空字符串
3、 os.path.dirname
獲取文件的目錄部分, dirname + basename 就可以構(gòu)成文件的完整路徑名
- path = "C:/Users/lzjun/workspace/python_scripts/test_path.py"
- print(os.path.dirname(path)) # C:/Users/lzjun/workspace/python_scripts
4、 os.path.exists
判斷路徑是否存在,這里的路徑包括目錄和文件(在linux系統(tǒng),一切皆文件), 如果你直接復(fù)制我的代碼,可能返回的結(jié)果是False,因?yàn)槟愕南到y(tǒng)可能沒有這些目錄。
- path = "C:/Users/lzjun/workspace/python_scripts/test_path.py"
- print(os.path.exists(path)) # True
- path = "C:/Users/lzjun/workspace/python_scripts"
- print(os.path.exists(path)) True
5、 os.path.getsize
獲取文件大小,也可以獲取目錄(所有文件的)大小,取決你你傳的路徑參數(shù)是文件還是目錄。單位是字節(jié)
- path = "C:/Users/lzjun/workspace/python_scripts/test_path.py"
- print(os.path.getsize(path)) # 177
6、 os.path.split
split 方法會(huì)將路徑切割成兩部分,以最后一個(gè)斜杠作為切割點(diǎn),第一部分是文件所在的目錄, 第二部分文件名本身。如果傳入的path是以“/”結(jié)尾,那么第二部就是空字符串
- path = "C:/Users/lzjun/workspace/python_scripts/test_path.py"
- print(os.path.split(path)) # ('C:/Users/lzjun/workspace/python_scripts', 'test_path.py')
- path = "C:/Users/lzjun/workspace/python_scripts/"
- print(os.path.split(path)) # ('C:/Users/lzjun/workspace/python_scripts', '')
7、 os.path.join
join是與split對(duì)應(yīng)的方法,用于拼接文件路徑,一般用于已知a文件的完整路徑,我想在與a同目錄下創(chuàng)建個(gè)b文件就可以用到j(luò)oin方法。
- a_path = "C:/Users/lzjun/workspace/python_scripts/a.py"
- dir = os.path.split(a_path)[0]
- print(os.path.join(dir, "b.py")) # C:/Users/lzjun/workspace/python_scripts\b.py
8、os.path.isdir
判斷路徑是否為目錄,注意,如果該目錄不存在也不會(huì)報(bào)錯(cuò),而是直接返回False
- path = "C:/Users/lzjun/workspace/python_scripts/"
- print(os.path.isdir(path)) # True
9. os.path.isfile
判斷路徑是否為文件,注意,如果該文件不存在也不會(huì)報(bào)錯(cuò),而是直接返回False
- print(os.path.isfile(__file__)) # True
- a_path = "C:/Users/lzjun/workspace/python_scripts/a.py"
- print(os.path.isfile(a_path)) # False (文件壓根不存在)