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) # 將路徑分割成文件名和目錄兩個(gè)部分,放在一個(gè)表中返回
path2 = os.path.join('\', 'home', 'zikong', 'doc', 'file.doc') #使用目錄名和文件名構(gòu)成一個(gè)路徑字符串
p_list = [path, path2]
print(os.path.commonprefix(p_list)) # 查詢多個(gè)路徑的共同部分
os.path.normpath(path) # 去除路徑path中的冗余。比如'/home/vamei/../.'被轉(zhuǎn)化為'/home'
#os.path還可以查詢文件的相關(guān)信息(metadata)。文件的相關(guān)信息不存儲(chǔ)在文件內(nèi)部,而是由操作系統(tǒng)
#維護(hù)的,關(guān)于文件的一些信息(比如文件類型,大小,修改時(shí)間)。
import os.path
path = '/home/vamei/doc/file.txt'
print(os.path.exists(path)) # 查詢文件是否存在
print(os.path.getsize(path)) # 查詢文件大小
print(os.path.getatime(path)) # 查詢文件上一次讀取的時(shí)間
print(os.path.getmtime(path)) # 查詢文件上一次修改的時(shí)間
print(os.path.isfile(path)) # 路徑是否指向常規(guī)文件
print(os.path.isdir(path)) # 路徑是否指向目錄文件
glob包
glob是python自己帶的一個(gè)文件操作相關(guān)模塊,內(nèi)容也不多,用它可以查找符合自己目的的文件,就類似于Windows下的文件搜索,而且也 支持通配符,,?,[]這三個(gè)通配符,代表0個(gè)或多個(gè)字符,?代表一個(gè)字符,[]匹配指定范圍內(nèi)的字符,如[0-9]匹配數(shù)字。
glob方法: 返回所有匹配的文件路徑列表,該方法需要一個(gè)參數(shù)用來(lái)指定匹配的路徑字符串(本字符串可以為絕對(duì)路徑也可以為相對(duì)路徑),比如:
import glob
glob.glob("/home/zikong/doc/*.doc")
/home/zikong/doc/file1.doc /home/zikong/doc/file2.doc
例子
綜合利用兩個(gè)包寫的一個(gè)類似于linux下的ls函數(shù):
#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能夠顯示中文