python 標準庫之shutil

shutil是一個比較強大的python的操作文件的包
安裝

pip install shutil

1,複製文件

1.shutil.copy(src, dst)
拷貝文件和權限

#返回值是複製之後的路徑
shutil.copy('來源文件','目標地址')

例子:

import shutil
 
shutil.copy('f1.log', 'f2.log')

2,shutil.copy2(src, dst)
拷貝文件和狀態信息

import shutil
 
shutil.copy2('f1.log', 'f2.log')

3,shutil.copyfile(src, dst)

將一個文件的內容拷貝的另外一個文件當中

#返回值是複製之後的路徑
shutil.copyfile(來源文件,目標文件)
shutil.copyfile('f1.log', 'f2.log') #目標文件無需存在

4.shutil.copyfileobj(fsrc, fdst[, length])

將一個文件的內容拷貝的另外一個文件當中
(用的比較少)

shutil.copyfileobj(open(來源文件,'r'),open('目標文件','w'))

import shutil
 
shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))

5,shutil.copytree(src, dst, symlinks=False, ignore=None)

複製整個文件目錄
(無論文件夾是否爲空,均可以複製,而且會複製文件夾中的所有內容)

shutil.copytree(來源目錄,目標目錄)

copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*')) 

6,shutil.rmtree(path[, ignore_errors[, onerror]])(刪除的是文件夾,如果刪除文件os.unlink(path))

移除整個目錄,無論是否空

shutil.rmtree(目錄路徑)

import shutil
shutil.rmtree('folder1')

7,shutil.move(src, dst)

shutil.move(來源地址,目標地址)

遞歸的去移動文件,它類似mv命令,其實就是重命名。 

import shutil
shutil.move('folder1', 'folder3')

有時候在進行大量文件複製的過程中,會出現同樣名字被覆蓋的問題看到很多案列感覺麻煩,懶人有懶人的辦法

import os
import time
# 判斷文件名已經存在
 if os.path.exists(file_path+'\\'+wordFile2):
        #把原來的文件名進行改掉   
        #主要是如果循環多,重複的名字多,所以用時間戳進行代替,不會弄重複  
        os.rename(file_path+'\\'+wordFile2, file_path+'\\'+str(time.time())+wordFile2)

 

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