1、shutil 模塊安全
1.複製文件和文件夾函數
1.1 shutil.copy() 複製文件spa
shutil.copy(source, destination),將路徑source 處的文件複製到路徑destination處的文件夾(source 和 destination 都是字符串)ip
>>> import shutil, osci
>>> os.chdir('/root')字符串
>>> shutil.copy('/root/Python36/love.py','/root/')get
1.2 shutil.copytree()將複製整個文件夾it
shutil.copytree()將複製整個文件夾,以及它包含的文件夾和文件。調用 shutil.copytree(source, destination),將路徑 source 處的文件夾,包括它的全部文件和子文件夾,複製到路徑 destination 處的文件夾。source 和destination 參數都是字符串。io
>>> import shutil, os
>>> os.chdir('C:\\')
>>> shutil.copytree('C:\\bacon', 'C:\\bacon_backup')table
2.文件和文件夾的移動與更名
2.1 shutil.move(source, destination)
shutil.move(source, destination),將路徑 source 處的文件夾移動到路徑destination。
若是 destination 指向一個文件夾,source 文件將移動到 destination 中,並保持原來的文件名。例如,在交互式環境中輸入如下代碼:
>>> import shutil
>>> shutil.move('C:\\bacon.txt', 'C:\\eggs')
destination 路徑也能夠指定一個文件名。在下面的例子中,source 文件被移動並更名。
>>> shutil.move('C:\\bacon.txt', 'C:\\eggs\\new_bacon.txt')
若是沒有 eggs 文件夾,move()就會將 bacon.txt 更名,變成名爲 eggs 的文件。
>>> shutil.move('C:\\bacon.txt', 'C:\\eggs')
3. 永久刪除文件和文件夾
3.1 用 os.unlink(path)將刪除 path 處的文件。
3.2 調用 os.rmdir(path)將刪除 path 處的文件夾。該文件夾必須爲空,其中沒有任何文件和文件夾。
3.3 調用 shutil.rmtree(path)將刪除 path 處的文件夾,它包含的全部文件和文件夾都會被刪除。
4.用send2trash模塊安全地刪除
由於 Python 內建的 shutil.rmtree()函數不可恢復地刪除文件和文件夾,因此 用起來可能有危險。刪除文件和 文件夾的更好方法,是使用第三方的 send2trash 模塊。
利用 send2trash,比 Python 常規的刪除函數要安全得多,由於它會將文件夾和文件發送到計算機的垃圾箱或回收站,而不是永久刪除它們。若是因程序缺陷而用send2trash 刪除了某些你不想刪除的東西,稍後能夠從垃圾箱恢復。
安裝 send2trash 後,在交互式環境中輸入如下代碼:
>>> import send2trash
>>> baconFile = open('bacon.txt', 'a') # creates the file
>>> baconFile.write('Bacon is not a vegetable.')
25
>>> baconFile.close()
>>> send2trash.send2trash('bacon.txt')
2.遍歷目錄樹
os.walk()函數:
import os
for folderName, subfolders, filenames in os.walk('C:\\delicious'):
print('The current folder is ' + folderName)
for subfolder in subfolders:
print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
for filename in filenames:
print('FILE INSIDE' + folderName + ':' + filename)
print(' ')
os.walk( )函數被傳入一個字符串值,即一個文件夾的路徑。
3.zipfile 模塊壓縮文件