Python shutil模塊(目錄和文件操作)


import shutil  #導入shutil模塊

copyfileobj方法

將類文件對象fsrc的內容復制到類文件對象fdst

shutil.copyfileobj(fsrc, fdst[, length]) 

我一般的用法:

shutil.copyfileobj(open('file','r'),open('file','w'))

注:如果fsrc對象的當前文件位置不為0,那么將只復制從當前文件位置到文件末尾的內容

copyfile方法

將名為src的文件的內容復制到名為dst的文件中,並返回dst。src和dst是作為字符串給出的路徑名

shutil.copyfile(src,dst,*,follow_symlinks=True)

目標位置必須是可寫的。否則將引發OSError異常。如果dst已存在,它將被替換。

如果follow_symlinks為false,並且src是一個符號鏈接,那么將創建一個新的符號鏈接,而不是復制文件src指向(這是python文檔里直接有道翻譯出來的,我也沒看懂是啥意思。學的還是太淺了········)

 

copymode方法

拷貝權限,文件內容、所有者和組不受影響。

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

src和dst是作為字符串給出的路徑名

 

copystat方法

將權限位、最后訪問時間、最后修改時間和標記從src復制到dst

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

 

copy方法

將文件src復制到文件或目錄dst

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

src和dst都是字符串,一般用法如下:

shutil.copy(r'要復制的文件路徑(路徑+文件)',r'復制到的路徑')

注:要復制到的路徑是存在的才行,不存在該路徑會報錯。

 

copy2方法

與copy()方法相同,只是copy2()還試圖保存所有文件元數據。

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

 

 

 copytree方法

遞歸的復制文件,該方法可以理解為復制電腦上某個文件夾以及文件夾內的東西到另一個文件夾

shutil.copytree(src,dst,ignore=None)

其中dst的路徑的最后一級必須是不存在的。如:D:\tools 這里的tools這個文件夾必須是不存在的。由python創建。

這里的ignore參數需要結合下列方式

shutil.ignore_patterns(*patterns)

我的理解就是需要忽視的文件的模式。用法如下:

shutil.copytree(src,dst,ignore=ignore_patterns('*.py'))

這里的意思就是把 src目錄下的文件都復制到 dst 目錄下但是忽略掉 .py 文件。

 注:這里要先定義一個需要忽略的文件的模式

如:

1 a=shutil.ignore_patterns('*.py')
2 shutil.copytree(src,dst,ignore=a)

 

 

 rmtree方法

shutil.rmtree(path)

遞歸的形式刪除 path 目錄,以及目錄下的所有文件

move方法

shutil.move(src,dst)

遞歸的形式移動 src 到 dst

如果dst是個現有的目錄 python 會將src移動到dst內 ,dst如果是個不存在的目錄 會調用os.ename 來改名字移動到目標位置。(應該是吧。我用的時候這個老報錯,移動是移動過去了,結果原文件還在,也是很奇怪。)

 

 

正在學習中······,學到新的東西會來修改或更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM