Python的shutil模塊探索,文件操作的瑞士軍刀

hello,大家好,我是一點,專注于Python編程,如果你也對感Python感興趣,歡迎關注交流。

希望可以持續更新一些有意思的文章,如果覺得還不錯,歡迎點贊關注,有啥想說的,可以留言或者私信交流。

如果你想看什么主題的文章,歡迎留言交流,關注公眾號【一點sir】,領取編程資料。

引言

在Python的標準庫中,shutil模塊是一個強大的工具,用于文件的高級操作。與基本的文件I/O操作不同,shutil提供了文件復制、刪除、移動、壓縮和解壓等高級功能。本文將深入探索shutil模塊,展示如何使用它來簡化文件處理任務。

shutil模塊概覽

shutil是“shell utilities”的縮寫,意味著這個模塊提供了類似shell命令的文件操作功能。它包括但不限于以下幾個方面:

  • 文件復制(copy(), copy2()
  • 文件刪除(rmtree()
  • 文件移動(move()
  • 歸檔壓縮與解壓(make_archive(), unpack_archive()
  • 文件系統大小統計(disk_usage()

文件復制

復制文件是shutil的一個基本功能。copy()copy2()都可用于復制文件,但copy2()還會嘗試保留文件的元數據。

import shutil# 復制文件
shutil.copy(src='source.txt', dst='destination.txt')# 復制文件并保留元數據
shutil.copy2(src='source.txt', dst='destination.txt')

文件刪除

rmtree()函數可以遞歸地刪除目錄及其包含的所有子目錄和文件。

# 刪除目錄及其內容
shutil.rmtree(path='directory_to_delete')

文件移動

move()函數可以在文件系統內移動文件或目錄。

# 移動文件
shutil.move(src='source.txt', dst='destination.txt')

歸檔壓縮與解壓

shutil可以創建壓縮歸檔,并支持多種格式,如zip,tar等。unpack_archive()用于解壓這些歸檔。

# 創建zip歸檔
shutil.make_archive(base_name='archive', format='zip', root_dir='directory_to_zip')# 解壓歸檔
shutil.unpack_archive(filename='archive.zip', extract_dir='destination_dir')

文件系統大小統計

disk_usage()提供了一種方法來獲取文件系統磁盤使用情況的統計信息。

# 獲取磁盤使用情況
disk_usage = shutil.disk_usage(path='.')
print(disk_usage)

安全性和異常處理

使用shutil時,異常處理非常重要,因為它涉及到文件系統的操作,可能會遇到權限錯誤、磁盤空間不足等問題。

# 異常處理示例
try:shutil.copy(src='source.txt', dst='destination.txt')
except IOError as e:print(f"無法復制文件: {e}")

結論

shutil模塊是Python中處理文件和目錄的有力工具。它提供了簡單易用的函數來執行常見的文件操作任務,使文件管理變得更加高效。通過本文的探索,我們了解到shutil不僅可以簡化日常的文件操作,還能夠處理復雜的歸檔和磁盤使用統計任務。掌握shutil模塊,將大大提高Python文件操作的能力和靈活性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14403.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14403.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14403.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每周刷題第三期

個人主頁:星紜-CSDN博客 系列文章專欄:Python 踏上取經路,比抵達靈山更重要!一起努力一起進步! 目錄 題目一:環形鏈表 題目二:刪除有序數組中的重復項 題目三:有效的括號 題…

從左上角到右下角的最小距離和

題目描述:給定一個二維數組matrix,一個人必須從左上角出發,最后到達右下角,沿途只可以向下或者向右走,沿途的數字都累加就是距離累加和,返回最小距離累加和。 way:無他,dp[i] [j]表…

《隊列》

描述 學校體操隊到操場集合,排成每行2人,最后多出1人;排成每行3人,也多出1人。分別排成每行4、5、6人,都多出1人。當排成每行7人時,正好不多,求校體操隊至少多少人。 輸入描述 無 輸出描述 滿足要求的人數 樣例輸入…

Python語法學習之 - 生成器表達式(Generator Expression)

第一次見這樣的語法 本人之前一直是Java工程師,最近接觸了一個Python項目,第一次看到如下的代碼: i sum(letter in target_arr for letter in source_arr)這條語句是計算source 與 target 數組中有幾個單詞是相同的。 當我第一眼看到這樣…

shell遍歷路徑所有文件并把列表寫成字符串遍歷

1. ls dir/* | tr ‘\n’ ’ ’ 換行替換成空格 你可以使用 ls 命令和 tr 命令來將文件列表根據空格拼接起來成一個字符串。以下是一個示例: ls dir/* | tr \n 解釋 ls dir/*:列出 dir 目錄下的所有文件。tr \n :將所有的換行符&#xf…

ChatGPT生成常見面試題【面試準備】

ChatGPT生成常見面試題【面試準備】 前言版權ChatGPT生成常見面試題【面試準備】MySQL面試問題與回答1. 數據庫連接與操作2. 索引和查詢優化3. 事務管理4. 索引是什么?為什么使用索引可以提高查詢性能?如何在MySQL中創建索引?5. SQL查詢優化有…

Varjo XR-4功能詳解:由凝視驅動的XR自動對焦相機系統

Varjo是XR市場中擁有領先技術的虛擬現實設備供應商,其將可變焦距攝像機直通系統帶入到虛擬和混合現實場景中。在本篇文章中,Varjo的技術工程師維爾蒂莫寧詳細介紹了這項在Varjo XR-4焦點版中投入應用的技術。 對可變焦距光學系統的需求 目前所有其他XR頭…

WPF之容器標簽之Canvas布局標簽

Canvas: 定義一個區域&#xff0c;可在其中使用相對于 Canvas 區域的坐標以顯式方式來定位子元素。 實例 可以在子標簽使用Canvas屬性設置定位 <Canvas Width"500" Height"300"><StackPanel Width"100" Height"100"Backgro…

網頁抓取之requests庫的使用

Python網絡數據采集利器 - Requests庫的使用指南 簡介 在Python網絡爬蟲領域,優秀的第三方庫Requests可謂是必學的重要工具。它提供了相當人性化的API,讓我們能夠用極其簡潔的代碼發送HTTP/HTTPS請求,并且自動處理cookies、headers、編碼等諸多繁瑣細節,大大減輕了網頁抓取的…

【pdb的使用方法】

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、 pdb 是什么&#xff1f;二、基本用法1.啟動 PDB 調試器&#xff1a;2.單步執行代碼&#xff1a;3.查看變量值&#xff1a;4.退出調試器&#xff1a; 三、高級用…

指數分布的理解,推導與應用

指數分布的定義 在浙大版的教材中&#xff0c;指數分布的定義如下&#xff1a; 若連續型的隨機變量 X X X的概率密度為&#xff1a; f ( x ) { 1 θ e ? x θ , x>0 0 , 其他 f(x) \begin{cases} \frac{1}{\theta} e^{-\frac{x}{\theta}}, & \text{x>0}\\ 0, &a…

mvn編譯所有單元測試報錯OOM

org.mockito.exceptions.base.MockitoException: Cannot instantiate InjectMocks field named ‘productLogic’ of type ‘class .ProductLogic’. You haven’t provided the instance at field declaration so I tried to construct the instance. However the constructo…

Python正則表達式與Excel文件名批量匹配技術文章

目錄 引言 正則表達式基礎 Python中的re模塊 Excel文件名批量匹配案例 常見問題與解決方案 結論 引言 在現代辦公環境中&#xff0c;Excel文件幾乎成為了數據分析和處理的標配工具。由于Excel文件可能包含大量的數據和信息&#xff0c;因此&#xff0c;對Excel文件的命名…

在aspNetCore中 使用System.Text.Json的定制功能, 將定制化的json返回給前端

C# 默認大寫, 而大部分的前端默認小寫, 這時候可以如此配置: builder.Services.AddControllers().AddJsonOptions((opt) > {opt.JsonSerializerOptions.PropertyNamingPolicy System.Text.Json.JsonNamingPolicy.CamelCase;opt.JsonSerializerOptions.WriteIndented true…

DSPF網絡類型實驗1

對R6配置 對R1配置 對R2 對R3 對R4 對R5 對R1R2R3R4R5加用戶 環回處理 然后開始配置缺省 R1有兩個下一跳 3&#xff0c;4&#xff0c;5同R2 然后對R1 dynamic動態 對R2 手寫 把注冊加上 register R3同R2處理

機柜里面的設備有哪些

一、服務器 服務器是機柜中最常見的設備之一。它們通常被用于存儲和運行數據、應用程序和服務。不同的服務器通常使用不同的操作系統和處理器架構&#xff0c;以滿足不同的需求。服務器可以使用冗余電源和冗余存儲空間等措施&#xff0c;以確保數據安全和可靠性。 二、交換機 交…

刪除鏈表的倒數第N個節點-力扣

第一種方法是使用前后指針&#xff0c;前指針先向前走n1步&#xff0c;然后前后指針同時向前&#xff0c;當前指針指向NULL時&#xff0c;后指針正好指向需要刪除的節點的前一個節點&#xff0c;操作后指針刪除即可。 代碼如下&#xff1a; /*** Definition for singly-linked…

醫學圖像分割

論文&#xff1a;Medical Image Segmentation Using Deep Learning: A Survey 參考&#xff1a;[醫學圖像分割綜述] Medical Image Segmentation Using Deep Learning: A Survey-CSDN博客 一、背景 特征表示的困難&#xff1a;模糊、噪聲、對比度低--->CNN屬于語義分割&a…

Web Server項目實戰2-Linux上的五種IO模型

上一節內容的補充&#xff1a;I/O多路復用是同步的&#xff0c;只有調用某些API才是異步的 Unix/Linux上的五種IO模型 a.阻塞 blocking 調用者調用了某個函數&#xff0c;等待這個函數返回&#xff0c;期間什么也不做&#xff0c;不停地去檢查這個函數有沒有返回&#xff0c…