Python標准庫03 路徑與文件 (os.path包, glob包)


作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

 

路徑與文件的簡介請參看Linux文件系統

 

os.path包

os.path包主要是處理路徑字符串,比如說'/home/vamei/doc/file.txt',提取出有用信息。

import os.path path = '/home/vamei/doc/file.txt'

print(os.path.basename(path))    # 查詢路徑中包含的文件名
print(os.path.dirname(path))     # 查詢路徑中包含的目錄
 info = os.path.split(path)       # 將路徑分割成文件名和目錄兩個部分,放在一個表中返回
path2 = os.path.join('/', 'home', 'vamei', 'doc', 'file1.txt')  # 使用目錄名和文件名構成一個路徑字符串
 p_list = [path, path2] print(os.path.commonprefix(p_list))    # 查詢多個路徑的共同部分

此外,還有下面的方法:

os.path.normpath(path)   # 去除路徑path中的冗余。比如'/home/vamei/../.'被轉化為'/home'

 

os.path還可以查詢文件的相關信息(metadata)。文件的相關信息不存儲在文件內部,而是由操作系統維護的,關於文件的一些信息(比如文件類型,大小,修改時間)。

import os.path path = '/home/vamei/doc/file.txt'

print(os.path.exists(path))    # 查詢文件是否存在

print(os.path.getsize(path))   # 查詢文件大小
print(os.path.getatime(path))  # 查詢文件上一次讀取的時間
print(os.path.getmtime(path))  # 查詢文件上一次修改的時間

print(os.path.isfile(path))    # 路徑是否指向常規文件
print(os.path.isdir(path))     # 路徑是否指向目錄文件

 (實際上,這一部份類似於Linux中的ls命令的某些功能)

 

glob包

glob包最常用的方法只有一個, glob.glob()。該方法的功能與Linux中的ls相似(參看Linux文件管理命令),接受一個Linux式的文件名格式表達式(filename pattern expression),列出所有符合該表達式的文件(與正則表達式類似),將所有文件名放在一個表中返回。所以glob.glob()是一個查詢目錄下文件的好方法。

該文件名表達式的語法與Python自身的正則表達式不同 (你可以同時看一下fnmatch包,它的功能是檢測一個文件名是否符合Linux的文件名格式表達式)。 如下:

Filename Pattern Expression      Python Regular Expression

*                                .*

?                                .

[0-9]                            same

[a-e]                            same

[^mnp]                           same

 

我們可以用該命令找出/home/vamei下的所有文件:

import glob print(glob.glob('/home/vamei/*'))

 

總結

文件系統

os.path

glob.glob


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM