Python处理各种压缩文件(bzip2,gzip,zip)

来源:互联网 发布:linux卸载nagios 编辑:程序博客网 时间:2024/06/05 19:22
原文地址:Python处理各种压缩文件(bzip2,gzip,zip)

Python中有一个gzip模块来处理gzip文件 读取gzip文件:

1
2
3
4
import gzip
f = gzip.open("tt.gz", "rb")
# 读取一行
f.readline()

GZIP:压缩一个文件

import gzip

1,f_in = open('iplist','rb')

2,f_out = gzip.open('iplist.gz','wb')

3,f_out.writelines(f_in)

4,f_out.close()

5,f_in.close()

6,f = gzip.open('iplist.gz','rb')

7,f.readline()

'121.8.102.126n'

8,f.readlines()

['182.128.179.162n', '121.9.15.146n', '125.118.221.146n', '61.139.124.66n', '183.145.208.217n', '14.153.145.49n', '116.25.192.98n', '183.7.109.62n', '218.17.162.217n', '58.213.141.183n', '61.164.166.122n', '222.95.180.41n', '182.149.234.40n', '60.177.22.212n', '180.118.29.64n', '115.197.116.39n', '222.212.49.130n', '14.216.123.197n', '14.20.31.77n', '183.22.105.212n', '219.134.89.66n', '220.167.53.179n', '183.45.111.38n', '125.120.32.98n', '180.109.64.209n']

bzip2:
写gzip文件

1
2
3
4
5
import gzip
f = gzip.open("tt.gz", "wb")
# 写入一行
f.write("aaa")
f.close()

写bzip2文件

1
2
3
4
5
import bz2
f = bz2.BZ2File("2.bz2", "wb")
# 写入一行
f.write("xxx")
f.close()

zip文件
zip的话,其实最主要的就是打包和解包操作。 解包zip文件:

1
2
3
4
5
import zipfile
x = zipfile.ZipFile("1.zip")
# 解包所有文件
x.extractall()
x.close()

打包所有文件:

1
2
3
4
5
x = zipfile.ZipFile("2.zip", "w")
# 写入两个文件
x.write("1.bz2")
x.write("2.gz")
x.close()

操作tarfile
在我们平时的使用过程中,经常会使用tar来对整个目录进行gzip或者bzip2打包和解包。Python中有tarfile来操作这些。 举个例子,来解压一个.tar.gz文件:

import tarfile

1
2
3
t = tarfile.open("1.tgz", "r:gz")
t.extractall()
t.close()
0 0