欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python標準庫shutil用法實例詳解

 更新時間:2018年08月13日 10:12:49   作者:噴跑的豆子  
這篇文章主要介紹了Python標準庫shutil用法,結合實例形式分析了shutil庫針對文件與文件夾各種常見操作技巧與相關使用注意事項,需要的朋友可以參考下

本文實例講述了Python標準庫shutil用法。分享給大家供大家參考,具體如下:

shutil模塊提供了許多關于文件和文件集合的高級操作,特別提供了支持文件復制和刪除的功能。

文件夾與文件操作

copyfileobj(fsrc, fdst, length=16*1024): 將fsrc文件內容復制至fdst文件,length為fsrc每次讀取的長度,用做緩沖區(qū)大小

  • fsrc: 源文件
  • fdst: 復制至fdst文件
  • length: 緩沖區(qū)大小,即fsrc每次讀取的長度
import shutil
f1 = open("file.txt","r")
f2 = open("file_copy.txt","a+")
shutil.copyfileobj(f1,f2,length=1024)

copyfile(src, dst): 將src文件內容復制至dst文件

  • src: 源文件路徑
  • dst: 復制至dst文件,若dst文件不存在,將會生成一個dst文件;若存在將會被覆蓋
  • follow_symlinks:設置為True時,若src為軟連接,則當成文件復制;如果設置為False,復制軟連接。默認為True。Python3新增參數(shù)
import shutil
shutil.copyfile("file.txt","file_copy.txt")

copymode(src, dst): 將src文件權限復制至dst文件。文件內容,所有者和組不受影響

  • src: 源文件路徑
  • dst: 將權限復制至dst文件,dst路徑必須是真實的路徑,并且文件必須存在,否則將會報文件找不到錯誤
  • follow_symlinks:設置為False時,src, dst皆為軟連接,可以復制軟連接權限,如果設置為True,則當成普通文件復制權限。默認為True。Python3新增參數(shù)
import shutil
shutil.copymode("file.txt","file_copy.txt")

copystat(src, dst): 將權限,上次訪問時間,上次修改時間以及src的標志復制到dst。文件內容,所有者和組不受影響

  • src: 源文件路徑
  • dst: 將權限復制至dst文件,dst路徑必須是真實的路徑,并且文件必須存在,否則將會報文件找不到錯誤
  • follow_symlinks:設置為False時,src, dst皆為軟連接,可以復制軟連接權限、上次訪問時間,上次修改時間以及src的標志,如果設置為True,則當成普通文件復制權限。默認為True。Python3新增參數(shù)
import shutil
shutil.copystat("file.txt","file_copy.txt")

copy(src, dst): 將文件src復制至dst。dst可以是個目錄,會在該目錄下創(chuàng)建與src同名的文件,若該目錄下存在同名文件,將會報錯提示已經存在同名文件。權限會被一并復制。本質是先后調用了copyfile與copymode而已

  • src:源文件路徑
  • dst:復制至dst文件夾或文件
  • follow_symlinks:設置為False時,src, dst皆為軟連接,可以復制軟連接權限,如果設置為True,則當成普通文件復制權限。默認為True。Python3新增參數(shù)
improt shutil,os
shutil.copy("file.txt","file_copy.txt")
# 或者
shutil.copy("file.txt",os.path.join(os.getcwd(),"copy"))

copy2(src, dst): 將文件src復制至dst。dst可以是個目錄,會在該目錄下創(chuàng)建與src同名的文件,若該目錄下存在同名文件,將會報錯提示已經存在同名文件。權限、上次訪問時間、上次修改時間和src的標志會一并復制至dst。本質是先后調用了copyfile與copystat方法而已

  • src:源文件路徑
  • dst:復制至dst文件夾或文件
  • follow_symlinks:設置為False時,src, dst皆為軟連接,可以復制軟連接權限、上次訪問時間,上次修改時間以及src的標志,如果設置為True,則當成普通文件復制權限。默認為True。Python3新增參數(shù)
improt shutil,os
shutil.copy2("file.txt","file_copy.txt")
# 或者
shutil.copy2("file.txt",os.path.join(os.getcwd(),"copy"))

ignore_patterns(*patterns): 忽略模式,用于配合copytree()方法,傳遞文件將會被忽略,不會被拷貝

  • patterns:文件名稱,元組

copytree(src, dst, symlinks=False, ignore=None): 拷貝文檔樹,將src文件夾里的所有內容拷貝至dst文件夾

  • src:源文件夾
  • dst:復制至dst文件夾,該文件夾會自動創(chuàng)建,需保證此文件夾不存在,否則將報錯
  • symlinks:是否復制軟連接,True復制軟連接,F(xiàn)alse不復制,軟連接會被當成文件復制過來,默認False
  • ignore:忽略模式,可傳入ignore_patterns()
  • copy_function:拷貝文件的方式,可以傳入一個可執(zhí)行的處理函數(shù),默認為copy2,Python3新增參數(shù)
  • ignore_dangling_symlinks:sysmlinks設置為False時,拷貝指向文件已刪除的軟連接時,將會報錯,如果想消除這個異常,可以設置此值為True。默認為False,Python3新增參數(shù)
import shutil,os
folder1 = os.path.join(os.getcwd(),"aaa")
# bbb與ccc文件夾都可以不存在,會自動創(chuàng)建
folder2 = os.path.join(os.getcwd(),"bbb","ccc")
# 將"abc.txt","bcd.txt"忽略,不復制
shutil.copytree(folder1,folder2,ignore=shutil.ignore_patterns("abc.txt","bcd.txt")

rmtree(path, ignore_errors=False, onerror=None): 移除文檔樹,將文件夾目錄刪除

  • ignore_errors:是否忽略錯誤,默認False
  • onerror:定義錯誤處理函數(shù),需傳遞一個可執(zhí)行的處理函數(shù),該處理函數(shù)接收三個參數(shù):函數(shù)、路徑和excinfo
import shutil,os
folder1 = os.path.join(os.getcwd(),"aaa")
shutil.rmtree(folder1)

move(src, dst): 將src移動至dst目錄下。若dst目錄不存在,則效果等同于src改名為dst。若dst目錄存在,將會把src文件夾的所有內容移動至該目錄下面

  • src:源文件夾或文件
  • dst:移動至dst文件夾,或將文件改名為dst文件。如果src為文件夾,而dst為文件將會報錯
  • copy_function:拷貝文件的方式,可以傳入一個可執(zhí)行的處理函數(shù)。默認為copy2,Python3新增參數(shù)
import shutil,os
# 示例一,將src文件夾移動至dst文件夾下面,如果bbb文件夾不存在,則變成了重命名操作
folder1 = os.path.join(os.getcwd(),"aaa")
folder2 = os.path.join(os.getcwd(),"bbb")
shutil.move(folder1, folder2)
# 示例二,將src文件移動至dst文件夾下面,如果bbb文件夾不存在,則變成了重命名操作
file1 = os.path.join(os.getcwd(),"aaa.txt")
folder2 = os.path.join(os.getcwd(),"bbb")
shutil.move(file1, folder2)
# 示例三,將src文件重命名為dst文件(dst文件存在,將會覆蓋)
file1 = os.path.join(os.getcwd(),"aaa.txt")
file2 = os.path.join(os.getcwd(),"bbb.txt")
shutil.move(file1, file2)

disk_usage(path): 獲取當前目錄所在硬盤使用情況。Python3新增方法

  • path:文件夾或文件路徑。windows中必須是文件夾路徑,在linux中可以是文件路徑和文件夾路徑
import shutil.os
path = os.path.join(os.getcwd(),"aaa")
info = shutil.disk_usage(path)
print(info)   # usage(total=95089164288, used=7953104896, free=87136059392)

chown(path, user=None, group=None): 修改路徑指向的文件或文件夾的所有者或分組。Python3新增方法

  • path:路徑
  • user:所有者,傳遞user的值必須是真實的,否則將報錯no such user
  • group:分組,傳遞group的值必須是真實的,否則將報錯no such group
import shutil,os
path = os.path.join(os.getcwd(),"file.txt")
shutil.chown(path,user="root",group="root")

which(cmd, mode=os.F_OK | os.X_OK, path=None): 獲取給定的cmd命令的可執(zhí)行文件的路徑。Python3新增方法

import shutil
info = shutil.which("python3")
print(info)   # /usr/bin/python3

歸檔操作

shutil還提供了創(chuàng)建和讀取壓縮和存檔文件的高級使用程序。內部實現(xiàn)主要依靠的是zipfile和tarfile模塊

make_archive(base_name, format, root_dir, …): 生成壓縮文件

  • base_name:壓縮文件的文件名,不允許有擴展名,因為會根據(jù)壓縮格式生成相應的擴展名
  • format:壓縮格式
  • root_dir:將制定文件夾進行壓縮
import shutil,os
base_name = os.path.join(os.getcwd(),"aaa")
format = "zip"
root_dir = os.path.join(os.getcwd(),"aaa")
# 將會root_dir文件夾下的內容進行壓縮,生成一個aaa.zip文件
shutil.make_archive(base_name, format, root_dir)

get_archive_formats(): 獲取支持的壓縮文件格式。目前支持的有:tar、zip、gztar、bztar。在Python3還多支持一種格式xztar

unpack_archive(filename, extract_dir=None, format=None): 解壓操作。Python3新增方法

  • filename:文件路徑
  • extract_dir:解壓至的文件夾路徑。文件夾可以不存在,會自動生成
  • format:解壓格式,默認為None,會根據(jù)擴展名自動選擇解壓格式
import shutil,os
zip_path = os.path.join(os.getcwd(),"aaa.zip")
extract_dir = os.path.join(os.getcwd(),"aaa")
shutil.unpack_archive(zip_path, extract_dir)

get_unpack_formats(): 獲取支持的解壓文件格式。目前支持的有:tar、zip、gztar、bztar和xztar。Python3新增方法

關于shutil的更多操作:https://docs.python.org/3/library/shutil.html

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • Python中Parser的超詳細用法實例

    Python中Parser的超詳細用法實例

    Parser模塊為Python的內部解析器和字節(jié)碼編譯器提供了一個接口,該接口的主要目的是允許Python代碼編輯Python表達式的分析樹并從中創(chuàng)建可執(zhí)行代碼,這篇文章主要給大家介紹了關于Python中Parser超詳細用法的相關資料,需要的朋友可以參考下
    2022-07-07
  • Python中的imread()函數(shù)用法說明

    Python中的imread()函數(shù)用法說明

    這篇文章主要介紹了Python中的imread()函數(shù)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python實現(xiàn)兩個一維列表合并成一個二維列表

    python實現(xiàn)兩個一維列表合并成一個二維列表

    今天小編就為大家分享一篇python實現(xiàn)兩個一維列表合并成一個二維列表,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 文件查找及內容匹配方法

    python 文件查找及內容匹配方法

    今天小編就為大家分享一篇python 文件查找及內容匹配方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 關于python中inspect模塊用法詳解

    關于python中inspect模塊用法詳解

    這篇文章主要介紹了關于python中inspect模塊用法詳解,獲取函數(shù)簽名對象。函數(shù)簽名包含了一個函數(shù)的信息,包括函數(shù)名、它的參數(shù)類型、它所在的類和名稱空間及其他信息,需要的朋友可以參考下
    2023-07-07
  • Python內置方法和屬性應用:反射和單例(推薦)

    Python內置方法和屬性應用:反射和單例(推薦)

    這篇文章主要介紹了Python內置方法和屬性應用:反射和單例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 用Python編寫個解釋器實現(xiàn)方法接受

    用Python編寫個解釋器實現(xiàn)方法接受

    計算機只能理解機器碼。歸根結底,編程語言只是一串文字,目的是為了讓人類更容易編寫他們想讓計算機做的事情。真正的魔法是由編譯器和解釋器完成,它們彌合了兩者之間的差距。解釋器逐行讀取代碼并將其轉換為機器碼
    2023-01-01
  • python爬蟲字體加密的解決

    python爬蟲字體加密的解決

    本文主要介紹了python爬蟲字體加密的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解

    python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解

    下面小編就為大家分享一篇python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • flask框架實現(xiàn)修改密碼和免密登錄功能

    flask框架實現(xiàn)修改密碼和免密登錄功能

    flask是python web開發(fā)的常用框架之一。本文將講述flask如何實現(xiàn)修改密碼和免密登錄功能
    2021-05-05

最新評論