pathlib是Python3.4及以後版本中的一個内置類庫,它提供了一種簡單而直覺的方式來處理檔案系統路徑,同時也能夠輕松地處理各種不同類型的路徑。
在本教程中,我們将介紹如何使用pathlib類庫來操作檔案路徑。
建立一個Path對象
pathlib庫中的主要對象是Path類,它表示檔案或目錄的路徑。要使用Path類,您需要首先建立一個Path對象。
from pathlib import Path
# 絕對路徑
path = Path('/usr/bin/python3')
# 相對路徑
path = Path('file.txt')
上面的代碼示範了如何使用Path類來建立一個絕對路徑和一個相對路徑的對象。
擷取路徑資訊
Path對象提供了一些方法來擷取路徑的資訊。下面是一些最常用的方法:
- name: 傳回路徑的最後一個組成部分的名稱
- parent: 傳回路徑的上一級目錄
- parts: 傳回路徑中的所有部分
- exists(): 檢查路徑是否存在
- is_dir(): 檢查路徑是否為一個目錄
- is_file(): 檢查路徑是否為一個檔案
from pathlib import Path
path = Path('/usr/bin/python3')
print(path.name) # python3
print(path.parent) # /usr/bin
print(path.parts) # ('/', 'usr', 'bin', 'python3')
if path.exists():
if path.is_dir():
print('Path is a directory.')
elif path.is_file():
print('Path is a file.')
else:
print('Path does not exist.')
上面的代碼将傳回python3作為路徑的名稱,/usr/bin作為路徑的上級目錄,('/', 'usr', 'bin', 'python3')作為路徑的所有部分。
操作路徑
Path對象還提供了一些方法來操作路徑。下面是一些最常用的方法:
- joinpath(): 連接配接兩個或多個路徑元件,并傳回一個新的Path對象
- with_suffix(): 更改路徑的檔案擴充名
- resolve(): 傳回絕對路徑
- relative_to(): 傳回相對路徑
from pathlib import Path
path = Path('/usr/bin')
new_path = path.joinpath('python3')
print(new_path) # /usr/bin/python3
new_path = new_path.with_suffix('.txt')
print(new_path) # /usr/bin/python3.txt
absolute_path = new_path.resolve()
print(absolute_path) # /usr/bin/python3.txt
relative_path = absolute_path.relative_to('/usr')
print(relative_path) # bin/python3.txt
上面的代碼示範了如何使用Path對象的方法來連接配接路徑、更改檔案擴充名、擷取絕對路徑和相對路徑。
周遊目錄
Path對象還提供了一些方法來周遊目錄。下面是一些最常用的方法:
- glob(): 傳回一個生成器,該生成器按照通配符模式傳回所有比對的檔案和目錄
- iterdir(): 傳回一個疊代器,該疊代器包含目錄中的所有條目
- rglob(): 傳回一個生成器,該生成器按照通配符模式遞歸傳回所有比對的檔案和目錄
from pathlib import Path
path = Path('/usr/bin')
# 周遊目錄
for entry in path.iterdir():
if entry.is_file():
print(f'File: {entry.name}')
elif entry.is_dir():
print(f'Directory: {entry.name}')
# 周遊目錄及其子目錄
for entry in path.rglob('*'):
if entry.is_file():
print(f'File: {entry.name}')
elif entry.is_dir():
print(f'Directory: {entry.name}')
上面的代碼示範了如何使用Path對象的方法來周遊目錄和子目錄中的所有檔案和目錄。
建立、複制和删除檔案/目錄
Path對象還提供了一些方法來建立、複制和删除檔案和目錄。下面是一些最常用的方法:
- mkdir(): 建立一個新目錄
- mkdir(parents=True, exist_ok=True): 建立一個新目錄,如果父目錄不存在則遞歸建立
- touch(): 建立一個新檔案
- rename(): 重命名檔案或目錄
- unlink(): 删除檔案
- rmdir(): 删除空目錄
- rmtree(): 遞歸删除目錄及其所有内容
from pathlib import Path
path = Path('file.txt')
# 建立一個新檔案
path.touch()
# 重命名檔案
path.rename('new_file.txt')
# 删除檔案
path.unlink()
# 建立一個新目錄
path.mkdir()
# 建立一個新目錄,如果父目錄不存在則遞歸建立
path = Path('path/to/new/directory')
path.mkdir(parents=True, exist_ok=True)
# 删除空目錄
path.rmdir()
# 遞歸删除目錄及其所有内容
path = Path('path/to/directory')
path.rmdir()
上面的代碼示範了如何使用Path對象的方法來建立、複制和删除檔案和目錄。
總結
在本教程中,我們介紹了如何使用pathlib類庫來處理檔案系統路徑。我們學習了如何建立Path對象、擷取路徑資訊、操作路徑、周遊目錄、建立、複制和删除檔案/目錄。pathlib類庫提供了一種更加簡單和直覺的方式來處理檔案系統路徑,并且它是Python3.4及以後版本中的一個内置類庫,是以無需安裝即可使用。