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)