Python標準庫os.path包、glob包使用執行個體

來源:互聯網
上載者:User
os.path包

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

複製代碼 代碼如下:


import os.path
path = '/home/zikong/doc/file.doc'

print(os.path.basename(path)) # 查詢路徑中包含的檔案名稱
print(os.path.dirname(path)) # 查詢路徑中包含的目錄

info = os.path.split(path) # 將路徑分割成檔案名稱和目錄兩個部分,放在一個表中返回
path2 = os.path.join('\', 'home', 'zikong', 'doc', 'file.doc') #使用目錄名和檔案名稱構成一個路徑字串

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)) # 路徑是否指向目錄檔案

glob包

glob是python自己帶的一個檔案操作相關模組,內容也不多,用它可以尋找符合自己目的的檔案,就類似於Windows下的檔案搜尋,而且也 支援萬用字元,,?,[]這三個萬用字元,代表0個或多個字元,?代表一個字元,[]匹配指定範圍內的字元,如[0-9]匹配數字。

glob方法: 返回所有匹配的檔案路徑列表,該方法需要一個參數用來指定匹配的路徑字串(本字串可以為絕對路徑也可以為相對路徑),比如:

複製代碼 代碼如下:


import glob
glob.glob("/home/zikong/doc/*.doc")
/home/zikong/doc/file1.doc /home/zikong/doc/file2.doc

例子

綜合利用兩個包寫的一個類似於linux下的ls函數:

複製代碼 代碼如下:


#coding = utf8
import glob
import os.path
path = '/Users/zikong/Pictures'
def ls(path):
#codinf = utf8
print "--name-- --type-- --size-- --atime-- --mtime-- "
path = path + '/*'
filelist = glob.glob(path)
for filepath in filelist:
out = '%s %s %s %s %s'%(filepath.split('/')[4] ,os.path.isfile(filepath) ,os.path.getsize(filepath) ,os.path.getatime(filepath) ,os.path.getmtime(filepath))
print out

ls(path)

注意

複製代碼 代碼如下:


#coding=utf

是為了讓python能夠顯示中文

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.