Python標準庫03 路徑與檔案 (os.path包, glob包)

來源:互聯網
上載者:User

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

 

1. 路徑與檔案簡介

請參看Linux檔案系統

http://www.cnblogs.com/vamei/archive/2012/09/09/2676792.html

 

2. os.path包

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

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)。檔案的相關資訊不儲存在檔案內部,而是由作業系統維護的,關於檔案的一些資訊(比如檔案類型,大小,修改時間)。

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命令的某些功能)

 

3. glob包

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

該檔案名稱運算式的文法與Python自身的Regex不同 (你可以同時看一下fnmatch包,它的功能是檢測一個檔案名稱是否符合Linux的檔案名稱格式運算式)。 如下:

Filename Pattern Expression      Python Regular Expression

*                                .*

?                                .

[0-9]                            same

[a-e]                            same

[^mnp]                           same

 

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

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

 

總結

檔案系統

os.path

glob.glob

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.