在Pyhton內置模塊中,os模塊提供了對目錄和文件的通常操做,shutil模塊做爲補充,提供了移動,複製,壓縮,解壓等操做,zipfile模塊提供了對zip文件格式的靈活操做,本文主要以一些簡單的小例子,簡述shutil模塊及zipfile模塊的簡單使用,僅供學習分享使用,若有不足之處,還請指正。html
shutil模塊是python標準庫中提供的,主要用來作文件和目錄的拷貝,移動,刪除等,還能夠作文件的和目錄的壓縮,解壓等操做。python
Python 中 zipfile 模塊提供了對 zip 壓縮文件的一系列操做。函數
若是要使用shutil及zipfile進行相關的操做,首先要導入模塊,以下所示:學習
1 import shutil as su 2 import zipfile as zf
將文件從一個目錄複製到另外一個目錄,而且複製文件時能夠改變文件名稱。spa
1 # copy文件,將文件從一個地方複製到另一個地方,若是是相對路徑,則相對代碼所在的目錄 2 su.copyfile(r'movie/gangtai/1.txt',r'movie/gangtai/1_copy.txt')
複製目錄內容到新目錄,以下所示:code
1 # copy目錄,將目錄中的內容【不包含目錄】拷貝到新的目錄,如目標目錄不存在 ,則新增,若是存在,則報錯 2 su.copytree('movie/gangtai','電影/港臺') # 默認所有內容拷貝
複製目錄時,默認是內容所有複製,也能夠定義忽略一些文件,以下所示:orm
1 # 忽略一些格式的文件不拷貝 2 su.copytree('movie/gangtai','電影/港臺',ignore=su.ignore_patterns('*.mp3','*.html'))
1 # base_name:壓縮包的路徑和名字,format:格式 root_dir:要壓縮的文件或目錄 2 su.make_archive('movie/gt','zip','movie/gangtai')
1 # 解壓縮 filename:壓縮包路徑 extract_dir:要解壓到的路徑 2 su.unpack_archive('movie/gt.zip',extract_dir='電影/gangtai')
若是須要更加靈活的進行解壓縮,能夠使用zipfile模塊進行操做。htm
能夠將不一樣目錄下的文件,放在一個壓縮文件中,以下所示:blog
1 # zipfile提供壓縮方式更靈活 2 z1 = zf.ZipFile(file='d:/a.zip', mode='w') 3 z1.write('movie/gangtai/1.txt') 4 z1.write('電影/港臺/1.txt') 5 z1.write('電影/港臺/1_copy.txt') 6 z1.close()
解壓後的文件,會安裝壓縮文件的結構進行展現,以下所示:遞歸
1 # 解壓 2 z2 = zf.ZipFile(file='d:/a.zip',mode='r') 3 z2.extractall(path='d:/a') 4 z2.close()
如下經過遞歸實現5的階乘,以下所示:
1 # 遞歸求階乘 2 def factorial(n): 3 if n == 1: 4 return 1 5 else: 6 return n * factorial(n - 1) 7 8 9 n = 5 10 f = factorial(n) 11 print('%(n)d的階乘等於%(f)d' % {'n': n, 'f': f})
行宮
寥落古行宮,宮花寂寞紅。
白頭宮女在,閒坐說玄宗。