1、判断是否是tar文件的示例
#!/usr/bin/envpython3
# encoding: utf-8import tarfile
filename_list= ['REME.txt', 'example.bz2', 'tarDir.tar', 'content.txt']for filename infilename_list:
try:
print('{:>15} {}'.format(filename, tarfile.is_tarfile(filename)))
except IOError as err:
print('{:>15} {}'.format(filename, err))
tarfile_is_tarfile.py
运行效果
[root@ mnt]# python3 tarfile_is_tarfile.py
REME.txt [Errno2] No such file or directory: 'REME.txt'example.bz2 False
tarDir.tarTrue
content.txt False
2、获取tar文件里面所有的文件名
#!/usr/bin/env python3#encoding: utf-8
importtarfile
with tarfile.open('tarDir.tar', 'r') as t:print(t.getnames())
tarfile_getnames.py
运行效果
[root@ mnt]# python3 tarfile_getnames.py
['content.txt', 'example.bz2', 'tarDir', 'tarDir/lines.bz2']
3、获取tar文件里面所有的文件名、大小、模式等
#!/usr/bin/env python3#encoding: utf-8
importtarfileimporttime
with tarfile.open('tarDir.tar', 'r') as t:for member_info int.getmembers():print(member_info.name)print('修改时间:', time.ctime(member_info.mtime))print('模式:', member_info.mode)print('类型:', member_info.type)print('大小:', member_info.size, 'bytes')
tarfile_getmembers.py
运行效果
[root@ mnt]# python3 tarfile_getmembers.py
content.txt
修改时间: Wed Dec25 14:16:23 2019模式:420类型: b'0'大小:336bytes
example.bz2
修改时间: Mon Jan6 00:06:31 2020模式:420类型: b'0'大小:65bytes
tarDir
修改时间: Thu Jan9 10:29:51 20