国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2019-11-25 16:39:15
字體:
來源:轉載
供稿:網友

讀寫文件
首先看一個例子:

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

文件的打開方式:

f = open(‘文件','mode')‘r':只讀(缺省。如果文件不存在,則拋出錯誤)‘w':只寫(如果文件不存在,則自動創建文件),此時無法調用f.read()方法,且當調用f.write()時,將清空文件原有內容‘a':附加到文件末尾‘r+':讀寫

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

文件的屬性:

f.closed #標記文件是否已經關閉,由close()改寫f.encoding #文件編碼f.mode #打開模式f.name #文件名f.newlines #文件中用到的換行模式,是一個tuplef.softspace #boolean型,一般為0,據說用于print

文件的讀寫方法:

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

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

一些例子:

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


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

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

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

2,把zip文件解壓縮

#!/usr/bin/pythonimport zipfilezfile = 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里有目錄,則在當前目錄下也應該存在對應的目錄,否則會報錯。

3,把整個文件夾壓縮

#!/usr/bin/pythonimport zipfileimport osf = 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()

如果出現:

Compression requires the (missing) zlib module

解決方法:

yum install zlib zlib-devel

,然后重新編譯安裝python

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平定县| 咸宁市| 丁青县| 西平县| 达尔| 盐源县| 江北区| 康平县| 中山市| 周至县| 莎车县| 海淀区| 天水市| 阿克陶县| 中卫市| 石林| 南川市| 左贡县| 张北县| 衡东县| 安徽省| 普洱| 徐水县| 兴化市| 衡阳县| 华亭县| 微博| 运城市| 莱阳市| 长汀县| 闽侯县| 上虞市| 武夷山市| 凤城市| 房山区| 常州市| 崇州市| 祁东县| 兰考县| 正宁县| 正宁县|