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

使用Python讀寫及壓縮和解壓縮文件的示例

 更新時(shí)間:2016年07月08日 15:42:54   作者:bear  
Python的os模塊中提供了基本的文件讀寫方法,而zipfile模塊則針對(duì)文件的壓縮和解壓縮操作,這里我們就來看一下使用Python讀寫及壓縮和解壓縮文件的示例:

讀寫文件
首先看一個(gè)例子:

f = open('thefile.txt','w')  #以寫方式打開,
try:
  f.write('wokao')
finally:
  f.close()

文件的打開方式:

f = open(‘文件','mode')
‘r':只讀(缺省。如果文件不存在,則拋出錯(cuò)誤)
‘w':只寫(如果文件不存在,則自動(dòng)創(chuàng)建文件),此時(shí)無法調(diào)用f.read()方法,且當(dāng)調(diào)用f.write()時(shí),將清空文件原有內(nèi)容
‘a(chǎn)':附加到文件末尾
‘r+':讀寫

如果需要以二進(jìn)制方式打開文件,需要在mode后面加上字符”b”,比如”rb”,”wb”等

文件的屬性:

f.closed #標(biāo)記文件是否已經(jīng)關(guān)閉,由close()改寫
f.encoding #文件編碼
f.mode #打開模式
f.name #文件名
f.newlines #文件中用到的換行模式,是一個(gè)tuple
f.softspace #boolean型,一般為0,據(jù)說用于print

文件的讀寫方法:

f.read([size]) #size為讀取的長(zhǎng)度,以byte為單位
f.readline([size]) #讀一行,如果定義了size,有可能返回的只是一行的一部分
f.readlines([size]) #把文件每一行作為一個(gè)list的一個(gè)成員,并返回這個(gè)list。其實(shí)它的內(nèi)部是通過循環(huán)調(diào)用readline()來實(shí)現(xiàn)的。如果提供size參數(shù),size是表示讀取內(nèi)容的總長(zhǎng),也就是說可能只讀到文件的一部分
f.write(str) #把str寫到文件中,write()并不會(huì)在str后加上一個(gè)換行符
f.writelines(seq) #把seq的內(nèi)容全部寫到文件中。這個(gè)函數(shù)也只是忠實(shí)地寫入,不會(huì)在每行后面加上任何東西
f.close() #關(guān)閉文件
f.flush() #把緩沖區(qū)的內(nèi)容寫入硬盤
f.fileno() #返回一個(gè)長(zhǎng)整型的”文件標(biāo)簽“
f.isatty() #文件是否是一個(gè)終端設(shè)備文件(unix系統(tǒng)中的)
f.tell() #返回文件操作標(biāo)記的當(dāng)前位置,以文件的開頭為原點(diǎn)
f.next() #返回下一行,并將文件操作標(biāo)記位移到下一行。把一個(gè)file用于for … in file這樣的語句時(shí),就是調(diào)用next()函數(shù)來實(shí)現(xiàn)遍歷的
f.seek(offset[,from]) #將文件打操作標(biāo)記移到offset的位置。這個(gè)offset一般是相對(duì)于文件的開頭來計(jì)算的,一般為正數(shù)。但如果提供了from參數(shù)就不一定了,from可以為0表示從頭開始計(jì)算,1表示以當(dāng)前位置為原點(diǎn)計(jì)算。2表示以文件末尾為原點(diǎn)進(jìn)行計(jì)算。需要注意,如果文件以a或a+的模式打開,每次進(jìn)行寫操作時(shí),文件操作標(biāo)記會(huì)自動(dòng)返回到文件末尾。
f.truncate([size]) #把文件裁成規(guī)定的大小,默認(rèn)的是裁到當(dāng)前文件操作標(biāo)記的位置。

Python在讀取一個(gè)文件時(shí),會(huì)記住其在文件中的位置,如果第二次仍需要從頭讀取,則需要調(diào)用f.seek(0)重新從頭開始讀取。

一些例子:

>>> f = open('hi.txt','w')
>>> f.closed
False
>>> f.mode
'w'
>>> f.name
'hi.txt'
>>> f.encoding


壓縮和解壓縮文件(zip/unzip)
1,單個(gè)文件壓縮成zip文件

#!/usr/bin/python
import zipfile
f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)
f.write('1.py')
f.write('/root/install.log')
f.close()

仔細(xì)觀察壓縮以后的archive.zip,里面有一個(gè)1.py和一個(gè)root的目錄,root目錄下有一個(gè)install.log
ZIP_DEFLATED是壓縮標(biāo)志,如果使用它需要編譯了zlib模塊,如果僅僅是打包而不壓縮的話,可以改為zipfile.ZIP_STORED

2,把zip文件解壓縮

#!/usr/bin/python
import zipfile
zfile = zipfile.ZipFile('archive.zip','r')
for filename in zfile.namelist():
  data = zfile.read(filename)
  file = open(filename, 'w+b')
  file.write(data)
  file.close()

如果archive.zip里有目錄,則在當(dāng)前目錄下也應(yīng)該存在對(duì)應(yīng)的目錄,否則會(huì)報(bào)錯(cuò)。

3,把整個(gè)文件夾壓縮

#!/usr/bin/python
import zipfile
import os
f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)
startdir = "c:\\\\mydirectory"
for dirpath, dirnames, filenames in os.walk(startdir):
  for filename in filenames:
    f.write(os.path.join(dirpath,filename))
f.close()

如果出現(xiàn):

Compression requires the (missing) zlib module

解決方法:

yum install zlib zlib-devel

,然后重新編譯安裝python

相關(guān)文章

  • Django框架模板文件使用及模板文件加載順序分析

    Django框架模板文件使用及模板文件加載順序分析

    這篇文章主要介紹了Django框架模板文件使用及模板文件加載順序,結(jié)合實(shí)例形式分析了Django框架模板文件的功能、用法及加載順序,需要的朋友可以參考下
    2019-05-05
  • 一文詳解如何在Matplotlib中更改圖例字體大小

    一文詳解如何在Matplotlib中更改圖例字體大小

    在我們處理數(shù)據(jù)的時(shí)候,需要對(duì)大量的數(shù)據(jù)進(jìn)行繪圖,就免不了要使用到Matplotlib,下面這篇文章主要給大家介紹了關(guān)于如何在Matplotlib中更改圖例字體大小的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Python+Selenium實(shí)現(xiàn)短視頻自動(dòng)上傳與發(fā)布的實(shí)踐

    Python+Selenium實(shí)現(xiàn)短視頻自動(dòng)上傳與發(fā)布的實(shí)踐

    本文主要介紹了Python+Selenium實(shí)現(xiàn)短視頻自動(dòng)上傳與發(fā)布的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 解決python 無法加載downsample模型的問題

    解決python 無法加載downsample模型的問題

    今天小編就為大家分享一篇解決python 無法加載downsample模型的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Pycharm在指定目錄下生成文件和刪除文件的實(shí)現(xiàn)

    Pycharm在指定目錄下生成文件和刪除文件的實(shí)現(xiàn)

    這篇文章主要介紹了Pycharm在指定目錄下生成文件和刪除文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 解決python打不開文件(文件不存在)的問題

    解決python打不開文件(文件不存在)的問題

    今天小編就為大家分享一篇解決python打不開文件(文件不存在)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python如何在循環(huán)引用中管理內(nèi)存

    python如何在循環(huán)引用中管理內(nèi)存

    這篇文章主要為大家詳細(xì)介紹了python如何在循環(huán)引用中管理內(nèi)存,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python二維圖制作的實(shí)例代碼

    python二維圖制作的實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于python二維圖制作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的操作指南

    使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的操作指南

    PyTorch 是一個(gè)在研究領(lǐng)域廣泛使用的深度學(xué)習(xí)框架,提供了大量的靈活性和效率,本文將向你介紹如何使用 PyTorch 構(gòu)建你的第一個(gè)神經(jīng)網(wǎng)絡(luò),感興趣的小伙伴可以參考閱讀
    2023-07-07
  • python實(shí)現(xiàn)批量轉(zhuǎn)換圖片為黑白

    python實(shí)現(xiàn)批量轉(zhuǎn)換圖片為黑白

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量轉(zhuǎn)換圖片為黑白,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評(píng)論

布拖县| 苍山县| 陈巴尔虎旗| 互助| 达尔| 江阴市| 邯郸市| 永济市| 琼中| 兴仁县| 锦屏县| 华亭县| 城步| 高台县| 永州市| 安岳县| 三河市| 宁陕县| 苏州市| 弋阳县| 台南县| 南乐县| 平利县| 绥德县| 无极县| 和林格尔县| 新津县| 阿合奇县| 新民市| 海原县| 南川市| 永川市| 射洪县| 吴川市| 庆城县| 庆元县| 宜良县| 开化县| 桃园市| 宁海县| 叙永县|