Python Path Walk: 遍歷文件夾並獲取文件信息

一、Python中文件系統操作模塊介紹

在Python中進行文件系統操作可以使用os模塊和shutil模塊,其中os模塊是Python中最常用的文件系統操作模塊之一。它提供了許多強大的方法來訪問文件系統,比如對文件、目錄、進程等進行操作。在使用os模塊時,需要注意不同操作系統文件系統之間可能存在差異。

shutil模塊也是Python中常用的文件系統操作模塊,提供了一些高級的文件處理功能,尤其是在文件拷貝和刪除等操作上,用起來很方便。

在Python中獲取路徑信息和遍歷目錄也有一些常用的庫,比如glob模塊、os.path模塊和pathlib模塊。這些庫都提供了方便的方法來處理和管理路徑。

二、Python路徑遍歷方法介紹

1. os.walk()

os.walk()是Python中遍歷目錄的方法之一,它能夠遍歷指定路徑下的所有目錄和文件。下面是使用os.walk()獲取文件夾中的所有文件名並列印的示例代碼:

import os
for root, dirs, files in os.walk("/path/to/folder"):
    for filename in files:
        print(filename)

上面的代碼中,os.walk()返回的是一個包含3個部分的元組,分別是當前目錄的路徑、當前目錄下的所有目錄、當前目錄下的所有文件。我們可以使用循環將這些文件名依次輸出。

2. pathlib.Path()

pathlib庫是Python 3.4中新增的庫,用於處理路徑問題。它提供了Path對象來方便地操作和處理路徑,Path對象可以用於創建、刪除、複製、移動文件或目錄,並提供了一些方法來操作文件和目錄路徑。

下面是使用pathlib.Path()獲取文件夾中的所有文件名並列印的示例代碼:

from pathlib import Path
for file in Path("/path/to/folder").iterdir():
    if file.is_file():
        print(file.name)

上面的代碼中,使用iterdir()方法獲取目錄中所有子文件或子目錄的Path對象,使用name屬性獲取文件名。

三、Python獲取文件信息方法介紹

1. os.stat()

os.stat()方法可以獲取文件信息,返回的是一個包含文件信息的stat_result對象。stat_result對象包含了文件的許多信息,比如大小、創建時間、修改時間等。下面是使用os.stat()獲取文件信息並輸出的示例代碼:

import os
file_info = os.stat("/path/to/file")
print(f"File size: {file_info.st_size} bytes")
print(f"File created time: {file_info.st_ctime}")
print(f"File modified time: {file_info.st_mtime}")

上面的代碼中,使用os.stat()獲取文件信息,使用st_size屬性獲取文件大小,使用st_ctime屬性獲取文件創建時間,使用st_mtime屬性獲取文件修改時間。

2. pathlib.Path().stat()

pathlib.Path()庫也可以獲取文件信息,它的Path對象有一個stat()方法可以獲取文件信息。下面是使用pathlib.Path().stat()獲取文件信息並輸出的示例代碼:

from pathlib import Path
file_info = Path("/path/to/file").stat()
print(f"File size: {file_info.st_size} bytes")
print(f"File created time: {file_info.st_ctime}")
print(f"File modified time: {file_info.st_mtime}")

上面的代碼中,使用Path().stat()獲取文件信息,使用st_size屬性獲取文件大小,使用st_ctime屬性獲取文件創建時間,使用st_mtime屬性獲取文件修改時間。

四、總結

Python中有多種方式可以遍歷文件夾和獲取文件信息。其中os.walk()和pathlib.Path()是比較常用的方法,但是每種方法都有自己的優缺點,需要根據實際情況選擇。同時,獲取文件信息也很重要,可以使用os.stat()和pathlib.Path().stat()獲取文件信息,便於進一步的操作和處理。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/259286.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 16:28
下一篇 2024-12-15 16:28

相關推薦

發表回復

登錄後才能評論