網站首頁 編程語言 正文
今天的章節我們來學習一下文件的裁剪、壓縮與解壓縮。所謂的文件裁剪就是從目前文件路徑A移動到目標文件路徑B ,A 與 B可能是相同的,也有可能是不同的。當目標移動之后,A 路徑下就不存在這個文件了,只存在目標路徑 B 下。但是也支持目標 A 下的名稱進行改變,所以它也是一個變相的重命名。至于壓縮與解壓縮,這里就不需要過多的語言解釋了吧… 都懂的…
利用 shutil 實現文件的裁剪(移動、重命名)
導入包與模塊
from shutil import move
使用方法:
move(來源地址, 目標地址)
結合我們上一章節的測試腳本場景,將 abcd.txt 移動到 test01 目錄下,然后再將 abcd_copy.txt 在當前目錄下重命名為 efg_copy.txt。
代碼示例如下:
# coding:utf-8
import os
from shutil import move
path = os.path.join(os.getcwd(), 'abcd.txt') # 利用 os 模塊的 getcwd() 函數 分別獲取絕對路徑
target = os.path.join(os.getcwd(), 'test01')
move(path, target) # 將 "abcd.txt" 文件移動到 "test01" 目錄下
move('abcd_copy.txt', 'efg_copy.txt') # 將 "abcd_copy.txt" 重命名為 "efg_copy.txt"
運行結果如下:
文件的刪除
這里我們將使用到 os 包的 remove() 函數實現文件的刪除操作,在 shutil 包中是沒有包含單獨的文件刪除的函數的,是因為 os 包的刪除已經足夠細致了。
接下來我們再鞏固一下 os 包的remove() 函數,利用 remove() 函數刪除上文我們重名后的 efg.txt 文件:
# coding:utf-8
import os
from shutil import copy, copyfile, move
path = os.path.join(os.getcwd(), 'abcd.txt') # 利用 os 模塊的 getcwd() 函數 分別獲取絕對路徑
target = os.path.join(os.getcwd(), 'test01')
# copyfile(path, target)
# move(path, target) # 將 "abcd.txt" 文件移動到 "test01" 目錄下
# move('abcd_copy.txt', 'efg_copy.txt') # 將 "abcd_copy.txt" 重命名為 "efg_copy.txt"
os.remove('efg_copy.txt')
運行結果如下:
利用 shutil 實現文件的壓縮
讓我們先看看壓縮的函數:
導入包與模塊
from shutil import make_archive
使用方法
make_archive(壓縮之后的文件名, 壓縮文件的后綴, 希望被壓縮的文件或目錄)
返回值
生成的壓縮包地址
import os
from shutil import copy, copyfile, move, make_archive
path = os.path.join(os.getcwd(), 'abcd.txt') # 利用 os 模塊的 getcwd() 函數 分別獲取絕對路徑
target = os.path.join(os.getcwd(), 'test01')
make_archive('test01', 'zip', os.path.join(os.getcwd(), 'test01'))
運行結果如下:
利用 shutil 實現文件的解壓縮
讓我們再看看解壓縮的函數:
導入包與模塊
from shutil import unpack_archive
使用方法
unpack_archive(要解壓的文件, 解壓后的路徑)
返回值
生成的壓縮包地址
代碼示例如下:
# coding:utf-8
import os
from shutil import copy, copyfile, move, make_archive, unpack_archive
# path = os.path.join(os.getcwd(), 'abcd.txt') # 利用 os 模塊的 getcwd() 函數 分別獲取絕對路徑
# target = os.path.join(os.getcwd(), 'test01')
# make_archive('test01', 'zip', os.path.join(os.getcwd(), 'test01'))
target = os.path.join(os.getcwd(), 'test02') # 為了區分解壓之后的目錄名稱與之前的test01,這里使用test02 作為解壓后的目錄
unpack_archive('test01.zip', target)
運行結果如下:
原文鏈接:https://blog.csdn.net/weixin_42250835/article/details/124580184
相關推薦
- 2022-10-02 Pandas中的unique()和nunique()區別詳解_python
- 2022-08-27 C#過濾sql特殊字符串的方法_C#教程
- 2022-05-29 一起來看看C語言的預處理注意點_C 語言
- 2022-12-11 Python處理鍵映射值操作詳解_python
- 2022-06-17 Go基礎教程系列之WaitGroup用法實例詳解_Golang
- 2023-05-17 一文速學Python+Pyecharts繪制樹形圖_python
- 2022-04-04 Element ui NavMenu 導航菜單 template中的內容不顯示
- 2023-08-15 關于axios請求中的GET、POST、PUT、DELETE的一些認知
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支