Python基礎之shutil及zipfile模塊


在Pyhton內置模塊中,os模塊提供了對目錄和文件的一般操作,shutil模塊作為補充,提供了移動,復制,壓縮,解壓等操作,zipfile模塊提供了對zip文件格式的靈活操作,本文主要以一些簡單的小例子,簡述shutil模塊及zipfile模塊的簡單使用,僅供學習分享使用,如有不足之處,還請指正。

什么是shutil?

shutil模塊是python標准庫中提供的,主要用來做文件和目錄的拷貝,移動,刪除等,還可以做文件的和目錄的壓縮,解壓等操作。

什么是zipfile?

Python 中 zipfile 模塊提供了對 zip 壓縮文件的一系列操作。

導入模塊

如果要使用shutil及zipfile進行相關的操作,首先要導入模塊,如下所示:

1 import shutil as su
2 import zipfile as zf

shutil簡單應用

1. 復制文件

將文件從一個目錄復制到另一個目錄,並且復制文件時可以改變文件名稱。

1 # copy文件,將文件從一個地方復制到另外一個地方,如果是相對路徑,則相對代碼所在的目錄
2 su.copyfile(r'movie/gangtai/1.txt',r'movie/gangtai/1_copy.txt')

2. 復制目錄

復制目錄內容到新目錄,如下所示:

1 # copy目錄,將目錄中的內容【不包含目錄】拷貝到新的目錄,如目標目錄不存在 ,則新增,如果存在,則報錯
2 su.copytree('movie/gangtai','電影/港台') # 默認全部內容拷貝

3. 自定義復制目錄

復制目錄時,默認是內容全部復制,也可以定義忽略一些文件,如下所示:

1 # 忽略一些格式的文件不拷貝
2 su.copytree('movie/gangtai','電影/港台',ignore=su.ignore_patterns('*.mp3','*.html'))

4. 生成壓縮文件

1 # base_name:壓縮包的路徑和名字,format:格式 root_dir:要壓縮的文件或目錄
2 su.make_archive('movie/gt','zip','movie/gangtai')

5. 解壓文件

1 # 解壓縮 filename:壓縮包路徑 extract_dir:要解壓到的路徑
2 su.unpack_archive('movie/gt.zip',extract_dir='電影/gangtai')

zipfile簡單應用

如果需要更加靈活的進行解壓縮,可以使用zipfile模塊進行操作。

1. 文件壓縮

可以將不同目錄下的文件,放在一個壓縮文件中,如下所示:

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()

2. 文件解壓

解壓后的文件,會安裝壓縮文件的結構進行展示,如下所示:

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})

備注

行宮

【作者】元稹 【朝代】唐

寥落古行宮,宮花寂寞紅。

白頭宮女在,閑坐玄宗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM