python shutil檔案操作工具使用例項分析
這篇文章主要介紹了python shutil檔案操作工具使用例項分析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
python中的shutil是一種高層次的檔案操作工具,主要強大之處在於對檔案的複製與刪除操作更友好
一:shutil. copyfileobj(fsrc,fdst [23])
將 fsrc 的內容複製到 fdst。如果給出整數長度,則為緩衝區大小。注意,fsrc、fdst,必須是已經開啟的檔案,而不能傳入檔名的字串
def copyfileobj(fsrc,fdst,length=16*1024): """copy data from file-like object fsrc to file-like object fdst""" while 1: buf = fsrc.read(length) if not buf: break fdst.write(buf)
程式碼如下:
f1 = open("111.txt","r",encoding="utf-8") f2 = open("222.txt","w",encoding="utf-8") shutil.copyfileobj(fsrc=f1,fdst=f2,length=15)
二:def copyfile(src,dst,*,follow_symlinks=True)
直接拷貝整個檔案。
運用程式碼如下:
shutil.copyfile("111.txt","333.txt")
後面的333.txt可以不是已經存在的,如果存在的話,則會被覆蓋掉。
三:shutil. copymode(src,dst,*,follow_symlinks=True)
只是會複製其許可權其他的東西是不會被複制的
程式碼運用如下:
shutil.copymode("111.txt","333.txt")
注意,這裡的111.txt 333.txt都必須是已經存在的,表示把前者的許可權複製到後者,也可以理解為給後者新增前者的許可權。但不會改變後者的內容。
四:shutil. copystat(src,dst,*,follow_symlinks=True)
和上面的copymode類似,但copystat複製許可權,最後訪問 time,最後修改 time,以及從 src 到 dst 的標誌。也不會改變後者的內容
shutil.copystat("111.txt","333.txt")
五:shutil. copy(src,dst,*,follow_symlinks=True)
複製一個檔案到一個檔案或一個目錄,如果 dst 指定目錄,則使用 src 中的基本檔名將檔案複製到 dst 中。返回新建立檔案的路徑。
複製到檔案和前面類似:
shutil.copy("111.txt",dst="444.txt")
複製到目錄,就是說我們可以只給第二個引數指定一個路徑,以原名字複製到指定路徑,像這樣:
shutil.copy("111.txt",dst="D:\\222.txt")
而前面的copyfile則必須再路徑後面加上命名,以給定的名字複製到指定路徑,像這樣:
shutil.copy("111.txt",dst="D:\\222.txt")
六:shutil. copy2(src,dst,*,follow_symlinks=True)
在copy上的基礎上再複製檔案最後訪問時間與修改時間也複製過來了,類似於cp –p的東西
七:shutil. copytree(src,dst,symlinks=False,ignore=None,copyfunction=copy2,ignore_dangling_symlinks=False)
拷貝目錄,如果第3個引數是True,則複製目錄時將保持資料夾下的符號連線,如果第3個引數是False,則將在複製的目錄下生成物理副本來替代符號連線
shutil.copytree(src="11",dst="22")
注意:如果目錄不在同一路徑下,需要在前面加上絕對或相對路徑
八:shutil. rmtree(路徑,ignore_errors=False,onerror=None)
遞迴刪除一個目錄以及目錄內的所有內容:
程式碼如下:
shutil.rmtree("E:\py project\python_ku\subprocess_demo\\11")
九:shutil. move(src,dst,copyfunction=copy2)
遞迴地將檔案或目錄(src)移動到另一個位置(dst)並返回目標
shutil.move(src="11",dst="D:\\")
上面的命令表示把當前路徑下的11這個目錄,移動到D:\\下
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。