您好,登錄后才能下訂單哦!
如何在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:\\")
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。