最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python shutil模塊實現(xiàn)文件的裁剪、壓縮與解壓縮的方法

 更新時間:2023年01月29日 10:27:04   作者:不渴望力量的哈士奇  
這篇文章主要介紹了Python shutil模塊實現(xiàn)文件的裁剪、壓縮與解壓縮的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

今天的章節(jié)我們來學(xué)習(xí)一下文件的裁剪、壓縮與解壓縮。所謂的文件裁剪就是從目前文件路徑A移動到目標(biāo)文件路徑B ,A 與 B可能是相同的,也有可能是不同的。當(dāng)目標(biāo)移動之后,A 路徑下就不存在這個文件了,只存在目標(biāo)路徑 B 下。但是也支持目標(biāo) A 下的名稱進(jìn)行改變,所以它也是一個變相的重命名。至于壓縮與解壓縮,這里就不需要過多的語言解釋了吧… 都懂的…

?? 利用 shutil 實現(xiàn)文件的裁剪(移動、重命名)

導(dǎo)入包與模塊

from shutil import move

使用方法:

move(來源地址, 目標(biāo)地址)

結(jié)合我們上一章節(jié)的測試腳本場景,將 abcd.txt 移動到 test01 目錄下,然后再將 abcd_copy.txt 在當(dāng)前目錄下重命名為 efg_copy.txt

代碼示例如下:

# coding:utf-8
import os
from shutil import move
path = os.path.join(os.getcwd(), 'abcd.txt')  # 利用 os 模塊的 getcwd() 函數(shù) 分別獲取絕對路徑
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"

運(yùn)行結(jié)果如下:

?? 文件的刪除

這里我們將使用到 os 包的 remove() 函數(shù)實現(xiàn)文件的刪除操作,在 shutil 包中是沒有包含單獨的文件刪除的函數(shù)的,是因為 os 包的刪除已經(jīng)足夠細(xì)致了。

接下來我們再鞏固一下 os 包的remove() 函數(shù),利用 remove() 函數(shù)刪除上文我們重名后的 efg.txt 文件:

# coding:utf-8
import os
from shutil import copy, copyfile, move
path = os.path.join(os.getcwd(), 'abcd.txt')  # 利用 os 模塊的 getcwd() 函數(shù) 分別獲取絕對路徑
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')

運(yùn)行結(jié)果如下:

?? 利用 shutil 實現(xiàn)文件的壓縮

讓我們先看看壓縮的函數(shù):

導(dǎo)入包與模塊

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() 函數(shù) 分別獲取絕對路徑
target = os.path.join(os.getcwd(), 'test01')
make_archive('test01', 'zip', os.path.join(os.getcwd(), 'test01'))

運(yùn)行結(jié)果如下:

?? 利用 shutil 實現(xiàn)文件的解壓縮

讓我們再看看解壓縮的函數(shù):

導(dǎo)入包與模塊

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() 函數(shù) 分別獲取絕對路徑
# target = os.path.join(os.getcwd(), 'test01')

# make_archive('test01', 'zip', os.path.join(os.getcwd(), 'test01'))

target = os.path.join(os.getcwd(), 'test02')    # 為了區(qū)分解壓之后的目錄名稱與之前的test01,這里使用test02 作為解壓后的目錄
unpack_archive('test01.zip', target)			

運(yùn)行結(jié)果如下:

補(bǔ)充:

python之shutil模塊shutil模塊——高級的文件、文件夾、壓縮包處理模塊

shutil 對壓縮包的處理是調(diào)用ZipFile和TarFile兩個模塊來進(jìn)行的

  • zipfile 壓縮解壓縮

  • tarfile 壓縮解壓縮
shutil.copyfileobj(fsrc,fdest[,length])   #將文件內(nèi)容拷貝到另一個文件中
import shutil
shutil.copyfileobj(open('old.xml','r'),open('new.xml','w'))

shutil.copyfile(src,dst)        #拷貝文件,目標(biāo)文件無需存在
shutil.copyfile('f1.log','f2.log')    

shutil.copymode(src,dst)        #僅拷貝文件權(quán)限,內(nèi)容,用戶,組均不變,目標(biāo)文件必須存在
shutil.copymode('f1.log','f2.log')

shutil.copystat(src,dst)        #僅拷貝狀態(tài)的信息,包括:mode bits,atime,mtime,flags,目標(biāo)文件必須存在
shutil.copystat('f1.log','f2.log')

shutil.copy(src,dst)            #拷貝文件和權(quán)限
import shutil
shutil.copy('f1.log','f2.log')

shutil.copy2(src,dst)            #拷貝文件和狀態(tài)信息
import shutil
shutil.copy2('f1.log','f2.log')

shutil.ignore_patterns(*patterns)
shutil.copytree(src,dst,symlinks=False,ignore=None)        #遞歸的去拷貝文件夾,
import shutil
shutil.copytree('folder1','folder2',ignore=shutil.ignore_patterns('*.py','tmp*'))    #目標(biāo)目錄不能存在,注意對folder2目錄父級目錄要有可寫權(quán)限,ignore的意思是排除;拷貝軟鏈接

shutil.rmtree(path[,ignore_errors[,onerror]])    #遞歸的去刪除文件
import shutil
shutil.rmtree('folder')

shutil.move(src,dst)            #遞歸的去移動文件,類似mv命令,其實就是重命名
import shutil
shutil.move('folder1','folder3')

shutil.make_archive(base_name.format,...)        #創(chuàng)建壓縮包并返回文件路徑,例如:zip.tar
    #base_name:壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時,保存至當(dāng)前目錄,否則保存到指定路徑,如:data.bak 保存至當(dāng)前路徑,/tmp/data.bak保存至/tmp
    #format: 壓縮包種類,zip,tar,bztar,gztar
    #root_dir: 要壓縮的文件夾路徑(默認(rèn)當(dāng)前目錄)
    #owner: 用戶,默認(rèn)當(dāng)前用戶
    #group:  組。默認(rèn)當(dāng)前組
    #logger:  用于記錄日志,通常是logging.Logger對象

#將/data下的文件打包放置當(dāng)前程序目錄
import shutil
ret=shutil.make_archive('data.bak','gztar',root_dir='/data')

#將/data下的文件打包放置/tmp目錄
import shutil
ret=shutil.make_archive('/tmp/data.bak','gztar',root_dir='/data')

#解壓縮:  zipfile  壓縮解壓縮   tarfile 壓縮解壓縮
import tarfile
#壓縮,打開文件/tmp/wei.tar,將文件/test1/a.py和/test1/b.py添加進(jìn)去
t=tarfile.open('/tmp/wei.tar','w')
t.add('/test1/a.py',arcname='a.bak')
t.add('/test1/b.py',arcname='a.bak')
t.close()

#解壓縮,將/tmp/wei.tar解壓到/wei下
t=tarfile.open('/tmp/wei.tar','r')
t.extractall('/wei')
t.close()

到此這篇關(guān)于Python shutil模塊實現(xiàn)文件的裁剪、壓縮與解壓縮的文章就介紹到這了,更多相關(guān)Python文件的裁剪壓縮與解壓縮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python初學(xué)者,用python實現(xiàn)基本的學(xué)生管理系統(tǒng)(python3)代碼實例

    python初學(xué)者,用python實現(xiàn)基本的學(xué)生管理系統(tǒng)(python3)代碼實例

    這篇文章主要介紹了用python實現(xiàn)學(xué)生管理系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python實現(xiàn)計算器功能

    python實現(xiàn)計算器功能

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 淺析Python中正則表達(dá)式函數(shù)search()和match()的使用

    淺析Python中正則表達(dá)式函數(shù)search()和match()的使用

    在Python中,正則表達(dá)式是處理字符串的強(qiáng)大工具,search()和match()是Python標(biāo)準(zhǔn)庫中re模塊中兩個常用的正則表達(dá)式方法,本文將詳細(xì)講解這兩個方法的使用,需要的可以參考一下
    2023-08-08
  • Python繪圖操作之turtle庫烏龜繪圖全面整理

    Python繪圖操作之turtle庫烏龜繪圖全面整理

    Turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標(biāo)系原點,(0,0)位置開始,它根據(jù)一組函數(shù)指令的控制,在這個平面坐標(biāo)系中移動,從而在它爬行的路徑上繪制了圖形
    2021-10-10
  • python自動化之如何利用allure生成測試報告

    python自動化之如何利用allure生成測試報告

    這篇文章主要給大家介紹了關(guān)于python自動化之如何利用allure生成測試報告的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • python獲取指定網(wǎng)頁上所有超鏈接的方法

    python獲取指定網(wǎng)頁上所有超鏈接的方法

    這篇文章主要介紹了python獲取指定網(wǎng)頁上所有超鏈接的方法,涉及Python使用urllib2模塊操作網(wǎng)頁抓取的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python中用戶輸入與while循環(huán)詳情

    Python中用戶輸入與while循環(huán)詳情

    這篇文章主要介紹了Python中用戶輸入與while循環(huán)詳情,,包括如何接收用戶輸入并進(jìn)行處理,在程序滿足一定的條件時讓程序一直運(yùn)行,通過獲取用戶輸入并學(xué)會控制程序在用戶想要結(jié)束時退出循環(huán),即可編寫出交互式程序,下文詳細(xì)內(nèi)容介紹,需要的朋友可以參考一下
    2022-03-03
  • pandas DataFrame.shift()函數(shù)的具體使用

    pandas DataFrame.shift()函數(shù)的具體使用

    本文主要介紹了pandas DataFrame.shift()函數(shù)的使用,pandas DataFrame.shift()函數(shù)可以把數(shù)據(jù)移動指定的位數(shù),有需要了解pandas DataFrame.shift()用法的朋友可以參考一下
    2021-05-05
  • Python字符串常規(guī)操作小結(jié)

    Python字符串常規(guī)操作小結(jié)

    本文主要介紹了Python字符串常規(guī)操作小結(jié),如拼接字符串、截取字符串、格式化字符串等,下面將對Python中常用字符串操作方法進(jìn)行介紹,感興趣的可以了解一下
    2022-04-04
  • Python qqbot 實現(xiàn)qq機(jī)器人的示例代碼

    Python qqbot 實現(xiàn)qq機(jī)器人的示例代碼

    這篇文章主要介紹了Python qqbot 實現(xiàn)qq機(jī)器人的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

山阳县| 宿松县| 灌阳县| 县级市| 龙门县| 宜黄县| 出国| 祥云县| 夏邑县| 松原市| 中山市| 临西县| 化隆| 铜山县| 崇明县| 嘉兴市| 神池县| 定襄县| 霍林郭勒市| 普格县| 合山市| 吴堡县| 盐边县| 安龙县| 扶沟县| 虹口区| 五原县| 潮安县| 遂川县| 正镶白旗| 宝坻区| 新邵县| 缙云县| 专栏| 贵州省| 东港市| 南靖县| 贵港市| 宁夏| 五河县| 巴东县|