python shutil模塊初學

shuttil 模塊 包含一些處理文件的函數。

import shutil 引入包

shutil.copy('C:\\a\\1.txt','C:\\b')                 將1.txt文件複製到路徑C:\\b中。

shutil.copy('C:\\a\\1.txt','C:\\b\\33.txt')     將1.txt文件複製到C:\\b中並改名字爲33.txt 

需要注意的是使用shutil.copy(), 如果b文件夾中有相同名字的文件,那麼b文件中的文件將被覆蓋。已測試

 

shutil.copytree(‘G:\\a’,'G:\\b')                      

創建一個新的文件夾G:\\b,並將G:\\a整個文件複製到b下 ,相當於給a做了一個備份,不會覆蓋相同名稱的文件夾,會報錯

shutil.move(‘G:\\a\\22.txt’,'G:\\c')  使用方法和shutil.copy一樣,如果G:\\c文件夾中有22.txt文件 他將會被覆蓋掉,沒有c文件夾會報錯

 

刪除文件和文件夾

shutil.retree(path)    將刪除path處的文件夾,文件夾和裏面的文件都會被刪除。需要注意的是使用shutil.retree()刪除的文件不可以被恢復。

os模塊中也有函數可以刪除

os.unlink('G:\\python學習\\222\\2.txt') 將刪除2.txt文件

os.rmdir(path)   將刪除path處的文件夾,但是文件夾必須爲空

比較安全的是使用send2trash模塊裏的send2trash函數來刪除文件和文件夾。此函數將刪除的文件和文件夾放到回收站,可以從回收站恢復。

send2trash.send2trash('G:\\python學習\\222\\2.txt')

 

遍歷文件夾

os.walk(‘文件路徑’) 將返回三個值

1.返回當前目錄的字符串

2.當前文件夾中子文件夾中的字符串列表

3.當前文件夾在中的文件字符串列表

G:\python學習\222   #主文件夾包含一個子文件夾G:\python學習\222\2和1.txt文件,子文件夾內沒有文件。

import os ,shutil

for fold,sub,fil in os.walk('G:\\python學習\\222'):
    print('我是fold',fold)
    print('我是sub',sub)
    print('我是fil',fil)

我是fold G:\python學習\222 
我是sub ['2']   #子文件夾的名字
我是fil ['1.txt']
我是fold G:\python學習\222\2    #這個文件夾裏面是空的所有返回的另外兩個值也是空的列表。
我是sub [] 
我是fil []

由此可見

第一個返回值主文件夾,字符串

第二個返回值是主文件夾中的子文件夾的名字,列表

第三個返回值是主文件夾中的文件,列表

然後開始迭代

同上遍歷子文件夾

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章