Python处理各种压缩文件

2390阅读 0评论2014-06-26 verne91
分类:Python/Ruby

处理gzip文件

Python中有一个模块来处理gzip文件 读取gzip文件:
  1. import gzip
  2. f = gzip.open("1.gz", "rb")
  3. # 读取一行
  4. f.readline()
写gzip文件
  1. import gzip
  2. f = gzip.open("2.gz", "wb")
  3. # 写入一行
  4. f.write("xxx")
  5. f.close()

处理bzip2文件

也是我们经常遇到的一种压缩格式,它的压缩率比gzip大。
读取bzip2文件:
  1. import bz2
  2. f = bz2.BZ2File("1.bz2")
  3. # 读取一行
  4. f.readline()
写bzip2文件
  1. import bz2
  2. f = bz2.BZ2File("2.bz2", "wb")
  3. # 写入一行
  4. f.write("xxx")
  5. f.close()

操作zip文件

的话,其实最主要的就是打包和解包操作。 解包zip文件:
  1. import zipfile
  2. x = zipfile.ZipFile("1.zip")
  3. # 解包所有文件
  4. x.extractall()
  5. x.close()
打包所有文件:
  1. x = zipfile.ZipFile("2.zip", "w")
  2. # 写入两个文件
  3. x.write("1.bz2")
  4. x.write("2.gz")
  5. x.close()

操作tarfile

在我们平时的使用过程中,经常会使用tar来对整个目录行gzip或者bzip2打包和解包。Python中有来操作这些。 举个例子,来解压一个.tar.gz文件:
  1. t = tarfile.open("1.tgz", "r:gz")
  2. t.extractall()
  3. t.close()
tar.file.open的mode有很多种:
mode action
'r' or 'r:*' Open for reading with transparent compression (recommended).
'r:' Open for reading exclusively without compression.
'r:gz' Open for reading with gzip compression.
'r:bz2' Open for reading with bzip2 compression.
'a' or 'a:' Open for appending with no compression. The file is created if it does not exist.
'w' or 'w:' Open for uncompressed writing.
'w:gz' Open for gzip compressed writing.
'w:bz2' Open for bzip2 compressed writing.
上一篇:安装Python的numpy包和scipy包
下一篇:没有了