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能夠顯示中文