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))
新聞熱點
疑難解答