tarfile类库功能介绍:
tarfile是Python标准库中的一个功能丰富的压缩文件操作类库,提供了许多压缩和解压缩文件的接口函数。 它支持多种格式的压缩文件,如.tar、.tar.gz、.tgz、.tar.bz2等等。tarfile类库不仅可以进行文件的压缩和解压缩,还可以执行其他操作,例如列出归档文件的成员列表以及在归档文件中添加或删除文件。
zipfile类库功能介绍:
zipfile是Python标准库中的另一个常用的压缩文件操作类库,它能够处理由PKZIP制作的.zip文件。zipfile类库提供了创建和读取Zip文件的多种方法,例如读取/写入ZIP文件中的单个文件、创建一个新的Zip文件、添加、删除或重命名ZIP文件内的一个文件。
- TarFile.open():打开tar文件,返回TarFile对象。 示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
tar.extractall()
2.ZipFile(filepath):创建ZipFile对象。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
zip.extractall()
3.TarFile.extractall():解压tar文件。
示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
tar.extractall()
4.ZipFile.extractall():解压zip文件。
示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
zip.extractall()
5.TarFile.getmembers():获取tar文件中的所有成员。
示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
members = tar.getmembers()
6.ZipFile.namelist():获取zip文件中的所有文件名。
示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
namelist = zip.namelist()
7.TarFile.add(file_path, arcname):将指定的文件添加到tar文件中。
示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'w:gz') as tar:
tar.add('example.txt', arcname='text.txt')
8.ZipFile.write(file_path, arcname):将指定的文件添加到zip文件中。
示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'w') as zip:
zip.write('example.txt', arcname='text.txt')
9.TarFile.extract(member):解压tar文件中的特定成员。
示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
tar.extract('example.txt')
10.ZipFile.extract(member):解压zip文件中的特定文件。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
zip.extract('example.txt')
- TarFile.extractfile(member):返回tar文件中特定成员的数据流。 示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
f = tar.extractfile('example.txt')
contents = f.read()
- ZipFile.read(member):返回zip文件中特定文件的数据流。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
contents = zip.read('example.txt')
- TarFile.close():关闭tar文件。 示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
members = tar.getmembers()
tar.close()
- ZipFile.close():关闭zip文件。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
namelist = zip.namelist()
zip.close()
- TarFile.extractall(path):解压tar文件到指定的路径。 示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
tar.extractall(path='/home/user/files')
- ZipFile.extractall(path):解压zip文件到指定的路径。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
zip.extractall(path='/home/user/files')
- TarFile.addfile(tarinfo, fileobj):将数据流添加到tar文件中。 示例代码:
import tarfile
with open('example.txt', 'rb') as f:
contents = f.read()
with tarfile.open('example.tar.gz', 'w:gz') as tar:
tarinfo = tarfile.TarInfo(name='example.txt')
tarinfo.size = len(contents)
tar.addfile(tarinfo=tarinfo, fileobj=io.BytesIO(contents))
- ZipFile.writestr(zinfo_or_arcname, data):将字节字符串添加到zip文件中。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'w') as zip:
zip.writestr('example.txt', b'Hello, world!')
- TarFile.getmember(name):获取tar文件中指定成员。 示例代码:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tar:
member = tar.getmember('example.txt')
- ZipFile.getinfo(name):获取zip文件中指定文件的信息。 示例代码:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip:
info = zip.getinfo('example.txt')
注意事项:
- 压缩文件时,根据需要选择不同的压缩算法(如gzip、bzip2等),以兼顾文件大小和压缩速度。
- 解压文件时,应将文件解压到安全可靠的位置,避免因文件名或路径名问题引发安全问题。
本文暂时没有评论,来添加一个吧(●'◡'●)