溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在python項目中使用shutil文件操作工具

發(fā)布時間:2021-03-23 14:50:21 來源:億速云 閱讀:158 作者:Leah 欄目:開發(fā)技術(shù)

如何在python項目中使用shutil文件操作工具?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一:shutil. copyfileobj(fsrc,fdst [23])

將 fsrc 的內(nèi)容復(fù)制到 fdst。如果給出整數(shù)長度,則為緩沖區(qū)大小。注意,fsrc、fdst,必須是已經(jīng)打開的文件,而不能傳入文件名的字符串

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可以不是已經(jīng)存在的,如果存在的話,則會被覆蓋掉。

三:shutil. copymode(src,dst,*,follow_symlinks=True)

只是會復(fù)制其權(quán)限其他的東西是不會被復(fù)制的

代碼運用如下:

shutil.copymode("111.txt", "333.txt")

注意,這里的111.txt 333.txt都必須是已經(jīng)存在的,表示把前者的權(quán)限復(fù)制到后者,也可以理解為給后者添加前者的權(quán)限。但不會改變后者的內(nèi)容。

四:shutil. copystat(src,dst,*,follow_symlinks=True)

和上面的copymode類似,但copystat復(fù)制權(quán)限,最后訪問 time,最后修改 time,以及從 src 到 dst 的標(biāo)志。也不會改變后者的內(nèi)容

shutil.copystat("111.txt", "333.txt")

五:shutil. copy(src,dst,*,follow_symlinks=True)

復(fù)制一個文件到一個文件或一個目錄,如果 dst 指定目錄,則使用 src 中的基本文件名將文件復(fù)制到 dst 中。返回新創(chuàng)建文件的路徑。

復(fù)制到文件和前面類似:

shutil.copy("111.txt", dst="444.txt")

復(fù)制到目錄,就是說我們可以只給第二個參數(shù)指定一個路徑,以原名字復(fù)制到指定路徑,像這樣:

shutil.copy("111.txt", dst="D:\\222.txt")

而前面的copyfile則必須再路徑后面加上命名,以給定的名字復(fù)制到指定路徑,像這樣:

shutil.copy("111.txt", dst="D:\\222.txt")

六:shutil. copy2(src,dst,*,follow_symlinks=True)

在copy上的基礎(chǔ)上再復(fù)制文件最后訪問時間與修改時間也復(fù)制過來了,類似于cp –p的東西

七:shutil. copytree(src,dst,symlinks=False,ignore=None,copyfunction=copy2,ignore_dangling_symlinks=False)

拷貝目錄,如果第3個參數(shù)是True,則復(fù)制目錄時將保持文件夾下的符號連接,如果第3個參數(shù)是False,則將在復(fù)制的目錄下生成物理副本來替代符號連接

shutil.copytree(src="11", dst="22")

注意:如果目錄不在同一路徑下,需要在前面加上絕對或相對路徑

八:shutil. rmtree(路徑,ignore_errors=False,onerror=None)

遞歸刪除一個目錄以及目錄內(nèi)的所有內(nèi)容:

代碼如下:

shutil.rmtree("E:\py project\python_ku\subprocess_demo\\11")

九:shutil. move(src,dst,copyfunction=copy2)

遞歸地將文件或目錄(src)移動到另一個位置(dst)并返回目標(biāo)

shutil.move(src="11", dst="D:\\")

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI