1. 程式人生 > 程式設計 >python shutil檔案操作工具使用例項分析

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:\\下

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。