亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python使用pathlib進行文件系統(tǒng)操作

 更新時間:2024年11月13日 09:41:59   作者:python收藏家  
pathlib?是?Python?的一個標準庫,它提供了一個面向對象的文件系統(tǒng)路徑操作接口,本文主要介紹了Python使用pathlib進行文件系統(tǒng)操作的相關知識,有需要的可以了解下

pathlib 是 Python 的一個標準庫,它提供了一個面向對象的文件系統(tǒng)路徑操作接口。使用 pathlib,你可以以一種更直觀和更易于理解的方式處理文件路徑,而不必使用字符串操作來分割和連接路徑。

os模塊 vs pathlib

在Python 3.4之前,處理文件路徑的更傳統(tǒng)的方法是使用os模塊。

我們可以通過考慮數(shù)據(jù)科學中的一個常見任務來展示pathlib的獨特價值:如何找到給定目錄及其所有子目錄中的所有png文件。

如果我們使用的是os模塊,我們可能會編寫以下代碼:

import os
dir_path = "/home/user/documents"
files = [
os.path.join(dir_path, f)
for f in os.listdir(dir_path)
if os.path.isfile(os.path.join(dir_path, f)) and f.endswith(".png")
]

雖然這段代碼解決了查找png文件的即時任務,但它揭示了os模塊的幾個主要缺點。首先,代碼很長,幾乎不可讀,這是一個遺憾,考慮到這是一個相對簡單的操作。第二點,我們的代碼假設了列表解析的知識,這不應該被認為是理所當然的。第三點,代碼涉及字符串操作,這是容易出錯的。最重要的是,代碼不是很簡潔。

相反,如果我們使用pathlib模塊,我們的代碼會簡單得多。正如我們所提到的,pathlib提供了一種面向對象的方法來處理文件系統(tǒng)路徑。

from pathlib import Path

# Create a path object
dir_path = Path(dir_path)

# Find all text files inside a directory
files = list(dir_path.glob("*.png"))

這種面向對象的編程圍繞對象及其交互來組織代碼,從而產(chǎn)生更多的模塊化、可重用和可維護的代碼。

在Python中使用Path對象

pathlib庫圍繞所謂的Path對象展開,paths對象是一種以結構化和平臺 獨立的方式。

我們使用以下代碼行將Path類從pathlib模塊引入到當前的命名空間中:

from pathlib import Path

從pathlib調用Path類后,我們可以通過多種方式創(chuàng)建Path對象,包括從字符串、從其他Path對象、從當前工作目錄和從主目錄。

從字符串創(chuàng)建路徑對象

我們可以通過將表示文件系統(tǒng)路徑的字符串傳遞給變量來創(chuàng)建Path對象。這將文件路徑的字符串表示形式轉換為Path對象。

file_path_str = "data/union_data.csv"

data_path = Path(file_path_str)

從其他路徑對象創(chuàng)建

現(xiàn)有的Path對象可以用作創(chuàng)建新路徑的構建塊。

我們通過將基本路徑、數(shù)據(jù)目錄和文件名組合成一個文件路徑來實現(xiàn)這一點。我們必須記住在適當?shù)牡胤绞褂谜备軄頂U展Path對象。

base_path = Path("/home/user")
data_dir = Path("data")

# Combining multiple paths
file_path = base_path / data_dir / "prices.csv"  
print(file_path)

輸出

'/home/user/data/prices.csv'

從當前工作目錄創(chuàng)建路徑對象

這里我們使用Path.cwd()方法將當前工作目錄分配給cwd變量。然后,我們可以檢索腳本運行的當前工作目錄的路徑。

cwd = Path.cwd()

???????print(cwd)

輸出

'/home/bexgboost/articles/2024/4_april/8_pathlib'

從主工作目錄創(chuàng)建路徑對象

我們可以通過將主目錄與其他子目錄組合來構造路徑。在這里,我們將主目錄與子目錄“downloads”和“projects”合并。"

home = Path.home()

???????home / "downloads" / "projects"

重要提示:Path類本身不執(zhí)行任何文件系統(tǒng)操作,如路徑驗證、創(chuàng)建目錄或文件。它被設計用于表示和操作路徑。要與文件系統(tǒng)進行實際交互(檢查是否存在,閱讀/寫入文件),我們必須使用Path對象的特殊方法,對于某些高級情況,請從os模塊獲得幫助。

在Python中使用Path組件

文件路徑屬性是文件路徑的各種屬性和組件,有助于識別和管理文件系統(tǒng)中的文件和目錄。就像物理地址有不同的部分,如街道號碼,城市,國家和郵政編碼,文件系統(tǒng)路徑可以分解為更小的組件。pathlib允許我們通過點表示法使用路徑屬性訪問和操作這些組件。

使用根目錄

根目錄是文件系統(tǒng)中最頂層的目錄。在類Unix系統(tǒng)中,它由正斜杠(/)表示。在Windows中,它通常是一個驅動器號后跟一個冒號,如C:。

image_file = home / "downloads" / "midjourney.png"

image_file.root

輸出

'/'

使用父目錄

父級包含當前文件或目錄。它相對于當前目錄或文件高一級。

image_file.parent

輸出

PosixPath('/home/bexgboost/downloads')

使用文件名

此屬性以字符串形式返回整個文件名,包括擴展名。

image_file.name

輸出

'midjourney.png'

使用文件后綴

suffix屬性以字符串形式返回文件擴展名,包括點(如果沒有擴展名,則返回空字符串)。

image_file.suffix

輸出

'.png'

注意:在Mac上,文件路徑區(qū)分大小寫,因此/Users/username/Documents和/users/username/documents會有所不同。

.parts屬性

我們可以使用.parts屬性將Path對象拆分為它的組件。

image_file.parts

輸出

('/', 'home', 'bexgboost', 'downloads', 'midjourney.png')

使用pathlib的常見路徑操作

以下是一些使用 pathlib 進行常見路徑操作的示例:

1.創(chuàng)建路徑對象:

from pathlib import Path
p = Path("/usr/bin")

2.路徑拼接:

new_path = p / "local" / "script.py"

3.獲取文件擴展名:

extension = new_path.suffix

4.更改文件擴展名:

new_extension = new_path.with_suffix(".txt")

5.檢查路徑是否存在:

exists = new_path.exists()

6.檢查路徑是否為文件:

is_file = new_path.is_file()

7.檢查路徑是否為目錄:

is_dir = new_path.is_dir()

8.讀取文件內容:

with new_path.open('r') as file:
    content = file.read()

9.寫入文件內容:

with new_path.open('w') as file:
    file.write("Hello, world!")

10.刪除文件:

new_path.unlink()

11.創(chuàng)建目錄:

new_path.mkdir(parents=True, exist_ok=True)

12.刪除目錄:

new_path.rmdir()

14.獲取目錄中的文件和子目錄:

items = list(new_path.iterdir())

15.絕對路徑:

absolute_path = new_path.absolute()

16.相對路徑:

relative_path = new_path.relative_to("/usr")

17.路徑解析:

parts = new_path.parts
drive, root, parts = new_path.drive, new_path.root, new_path.parts

18.路徑字符串轉換:

path_str = str(new_path)

19.遍歷目錄樹:

for child in new_path.rglob('*.py'):
    print(child)

這些是 pathlib 模塊提供的一些基本操作。pathlib 模塊使得文件系統(tǒng)路徑的操作更加直觀和易于管理。

到此這篇關于Python使用pathlib進行文件系統(tǒng)操作的文章就介紹到這了,更多相關Python pathlib文件系統(tǒng)操作內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論