下面通過代碼給大家介紹python打包壓縮指定目錄下的指定類型文件,具體代碼如下所示:
import os import datetime import tarfile import fnmatch def find_spe_file(root, patterns=['*'], non_cludedir=[]): for root, dirnames, filenames in os.walk(root): for pattern in patterns: for filename in filenames: if fnmatch.fnmatch(filename, pattern): #print(filename) yield os.path.join(root, filename) def cre_tarfile(): args = ["*.jpg", "*.jepg"] now = datetime.datetime.now().strftime("%Y_%m_%d_%H_%M_%S") filename = "all_img_{0}.tar.gz".format(now) with tarfile.open(filename, mode='w:gz') as f: for item in find_spe_file(".", args): #print(item) f.add(item) if __name__ == "__main__": cre_tarfile()
下面看下使用python讀取指定目錄下的指定類型文件
準備工作:設置指定的路徑,使用os.listdir() 方法獲取路徑下所有的文件
import os path = "d:\\data" # 設置路徑 dirs = os.listdir(path) # 獲取指定路徑下的文件
循環判斷:使用os.path.splitext()方法篩選出指定類型的文件
for i in dirs: # 循環讀取路徑下的文件并篩選輸出 if os.path.splitext(i)[1] == ".csv": # 篩選csv文件 print i # 輸出所有的csv文件
案例展示:
# encoding: utf-8 import os path = "d:\\data" # 設置路徑 dirs = os.listdir(path) # 獲取指定路徑下的文件 for i in dirs: # 循環讀取路徑下的文件并篩選輸出 if os.path.splitext(i)[1] == ".csv": # 篩選csv文件 print i # 輸出所有的csv文件
運行結果:
20160904.csv
20160911.csv
20160918.csv
20160925.csv
20161002.csv
20161009.csv
函數解釋:
os.listdir(path)
函數功能:返回一個列表,其中包含由path指定的目錄中的條目的名稱。 列表是任意順序的。它不包括特殊條目'.‘ 和'..‘,即使它們存在于目錄中。
import os, sys path = "d:\\tmp\\" dirs = os.listdir( path ) for file in dirs: print (file)
運行結果:
Applicationdocs.docx
test.java
book.zip
foo.txt
Java Multiple Inheritance.html
Java Multiple Inheritance_files
java.ppt
ParallelPortViewer
os.path.splitext(path)
函數功能:分離文件名與擴展名;默認返回(fname,fextension)元組,可做切片操作
import os, sys path = 'c:\\csv\\test.csv' print os.path.splitext(path)
運行結果:
('c:\\csv\\test', '.csv')
總結
以上所述是小編給大家介紹的python打包壓縮、讀取指定目錄下的指定類型文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。