Python壓縮文件基本應(yīng)用代碼示例解讀
Python編程語(yǔ)言的出現(xiàn),在很大程度上大大提高了編程人員程序開(kāi)發(fā)的效率,并且其應(yīng)用方式簡(jiǎn)單,很容易上手,極大的滿足了一些編程人員的開(kāi)發(fā)需求。我們今天將會(huì)為大家詳細(xì)介紹一下Python壓縮文件的相關(guān)方法。#t#
在了解Python壓縮文件這一技巧之前,首先先讓我們對(duì)Python這一語(yǔ)言進(jìn)行一個(gè)詳細(xì)的介紹。
可擴(kuò)充性可說(shuō)是Python作為一種編程語(yǔ)言的特色。新的內(nèi)置模塊(module)可以用C 或 C++寫(xiě)成。而我們也可為現(xiàn)成的模塊加上Python的接口。Python可以使用戶避免過(guò)分的語(yǔ)法的羈絆而將精力主要集中到所要實(shí)現(xiàn)的程序任務(wù)上。
Python也被稱為是一門(mén)清晰的語(yǔ)言。因?yàn)樗淖髡咴谠O(shè)計(jì)它的時(shí)候,總的指導(dǎo)思想是,對(duì)于一個(gè)特定的問(wèn)題,只要有一種***的方法來(lái)解決就好了。這在由Tim Peters寫(xiě)的python格言(稱為T(mén)he Zen of Python)里面表述為:
There should be one-- and preferably only one --obvious way to do it.
有意思的是,這正好和Perl語(yǔ)言(另一種功能類似的高級(jí)動(dòng)態(tài)語(yǔ)言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。這似乎是人們常把Perl和Python互相比較的重要原因。
Python語(yǔ)言是一種清晰的語(yǔ)言的另一個(gè)意思是,它的作者有意的設(shè)計(jì)限制性很強(qiáng)的語(yǔ)法,使得不好的編程習(xí)慣(例如if語(yǔ)句的下一行不向右縮進(jìn))都不能通過(guò)編譯。這樣有意的強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則。
例如if語(yǔ)句:
- if age<21:
- print "You cannot buy wine!\n"
- print "But you can buy chewing gum.\n"
- print "this is outside if\n"
一個(gè)和其他大多數(shù)語(yǔ)言(如C)的區(qū)別就是,一個(gè)模塊的界限,完全是由每行的首字符在這一行的位置來(lái)決定的(而C語(yǔ)言是用一對(duì)花括號(hào){}來(lái)明確的定出模塊的邊界的,與字符的位置毫無(wú)關(guān)系)。這一點(diǎn)曾經(jīng)引起過(guò)爭(zhēng)議。因?yàn)樽詮腃這類的語(yǔ)言誕生后,語(yǔ)言的語(yǔ)法含義與字符的排列方式分離開(kāi)來(lái),曾經(jīng)被認(rèn)為是一種程序語(yǔ)言的進(jìn)步。不過(guò)不可否認(rèn)的是,通過(guò)強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方),Python確實(shí)使得程序更加清晰和美觀。
另外Python在其他部分的設(shè)計(jì)上也堅(jiān)持了清晰劃一的風(fēng)格,這使得Python稱為一門(mén)易讀性、易維護(hù)性好,并且被大量用戶所歡迎的、用途廣泛的語(yǔ)言。Python直接編寫(xiě)的程序段有時(shí)運(yùn)行效率甚至高于用C編寫(xiě)的程序。
zipfile是Python里用來(lái)做zip格式編碼的壓縮和解壓縮的module,zipfile里有兩個(gè)非常重要的class:ZipFile和ZipInfo。ZipFile是主要的類,用來(lái)創(chuàng)建和讀取zip文件而ZipInfo是存儲(chǔ)的zip文件的每個(gè)文件的信息。
在這里我需要把一個(gè)目錄壓縮,這就要將目錄里的文件一個(gè)文件一個(gè)文件的加入,然后在使用zipfile的ZipFile類的時(shí)候,再一個(gè)一個(gè)寫(xiě)入壓縮文件以完成Python壓縮文件這一操作步驟。
- #!/usr/bin/env Python
- #coding=utf-8
- import os
- import zipfile
- filelist = []
- for root, dirs, files in os.walk("D:\\clean"):
- for name in files:
- filelist.append(os.path.join(root, name))
- zf = zipfile.ZipFile("d:\\test.zip", "w", zipfile.zlib.DEFLATED)
- for tar in filelist:
- zf.write(tar)
- zf.close()
以上就是對(duì)Python壓縮文件的相關(guān)介紹。