python2.x shutil模組和send2trash模組
shutil模組
shutil(或稱為shell工具)模組中包含一些函式,讓你在python程式中複製、移動、改名和刪除檔案。
要使用shutil的函式,首先需要import shutil
1.複製檔案和資料夾
shutil模組提供了一些函式,用於複製檔案和整個資料夾。
呼叫shutil.copy(source,destination), 將路徑source處的檔案複製到路徑destination處的資料夾(source和destination都是字串)
如果destination是一個檔名,它將作為被複制檔案的新名字。該函式返回一個字串,表示被複制檔案的路徑。
shutil.copy()將複製一個檔案,shutil.copytree()將複製整個資料夾,以及它包含的資料夾和檔案。
shutil.copytree(source, destination), 將路徑source處的資料夾,包括它的所有檔案和子資料夾,複製到路徑destination處的資料夾。
source和destination引數都是字串。該函式返回一個字串,是新複製的資料夾的路徑
2.檔案和資料夾的移動與改名
呼叫shutil.move(source, destination), 將路徑source處的資料夾移動到路徑destination,並返回新位置的絕對路徑的字串。
如果destination指向一個資料夾,source檔案將移動到destination中,並保持原來的檔名。
3.永久刪除檔案和資料夾
利用os模組中的函式,可以刪除一個檔案或一個空資料夾。但利用shutil模組,可以刪除一個資料夾及其所有的內容。
1. 利用os.unlink(path) 將刪除path處的檔案。
2. 呼叫os.rmdir(path) 將刪除path處的資料夾。該資料夾必須為空,其中沒有任何檔案和資料夾
3. 呼叫shutil.rmtree(path) 將刪除path處的資料夾,它包含的所有檔案和資料夾都會被刪除。
send2trash模組
因為Python內建的shutil.rmtree() 函式不可恢復地刪除檔案和資料夾,可以利用send2trash模組安全地刪除。
利用send2trash,比Python常規的刪除函式要安全得多,因為它會將資料夾和檔案傳送到計算機的垃圾箱或回收站,而不是永久刪除他們。
send2trash.send2trash()函式來刪除檔案和資料夾。雖然它將檔案傳送到垃圾箱,讓你稍後能夠恢復她們,但是這不像永久刪除檔案,不會釋放磁碟空間。
如果你希望程式釋放磁碟空間,就要利用os和shutil來刪除檔案和資料夾。注意,send2trash() 函式只能將檔案傳送到垃圾箱,不能從中恢復檔案。遍歷目錄樹 os.walk()函式
import os
for folder_name, sub_folders, file_names in os.walk('c:\\test'):
print 'The current folder is', folder_name
for sub_folder in sub_folder:
print 'SUBFOLDER OF %s : %s' % (folder_name, sub_folder)
for file_name in file_names:
print 'FILE INSIDE %s : %s ' % (folder_name, file_name)
os.walk()函式被傳入一個字串值,即一個資料夾的路徑。os.walk()函式在迴圈的每次迭代中,返回3個值:
1. 當前資料夾名稱的字串
2. 當前資料夾中子資料夾的字串的列表
3. 當前資料夾中檔案的字串的列表