Python标准库03 路径与文件 (os.path包, glob包)
摘要:Python標準庫
- 文件系統
- os.path
- glob.glob
?
os.path包
os.path包主要是處理路徑字符串,比如說’/home/vamei/doc/file.txt’,提取出有用信息。
| 1234567891011 | import os.pathpath = '/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)。文件的相關信息不存儲在文件內部,而是由操作系統維護的,關于文件的一些信息(比如文件類型,大小,修改時間)。
| 1 2 3 4 5 6 7 8 9 10 11 | 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下的所有文件:
| 1 2 | import glob print(glob.glob('/home/vamei/*')) |
?
總結
文件系統
os.path
glob.glob
作者:Vamei 出處:http://www.cnblogs.com/vamei
總結
以上是生活随笔為你收集整理的Python标准库03 路径与文件 (os.path包, glob包)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python标准库01 正则表达式 (r
- 下一篇: Python标准库04 文件管理 (部分