Python 'tarfile' 模块无法处理 tar 文件中的非 utf-8 文件名
Python 'tarfile' module unable to handle non utf-8 filenames in tar file
我正在使用 Python 2.7 和 'tarfile' 模块,我正在处理的 tar 文件的文件名不是 unicode,并且 'tarfile' 模块出错。如何告诉 'tarfile' 模型忽略错误?下面的代码给我错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa2 in position 5: invalid start byte
if tar_flag:
tar_obj = tarfile.open(infile, 'r', encoding='utf-8', errors='surrogateescape')
try:
member_list = tar_obj.getmembers()
for member in member_list:
if member.isfile():
if member.name.lower().endswith('.exe'):
tar_obj.extract(member.name, path='/home/tar/')
print 'extracting {}'.format(member.name)
except Exception as err:
print err
Python 2.x 不支持 UTF,所以我切换到 Python 3 并且成功了。
我正在使用 Python 2.7 和 'tarfile' 模块,我正在处理的 tar 文件的文件名不是 unicode,并且 'tarfile' 模块出错。如何告诉 'tarfile' 模型忽略错误?下面的代码给我错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa2 in position 5: invalid start byte
if tar_flag:
tar_obj = tarfile.open(infile, 'r', encoding='utf-8', errors='surrogateescape')
try:
member_list = tar_obj.getmembers()
for member in member_list:
if member.isfile():
if member.name.lower().endswith('.exe'):
tar_obj.extract(member.name, path='/home/tar/')
print 'extracting {}'.format(member.name)
except Exception as err:
print err
Python 2.x 不支持 UTF,所以我切换到 Python 3 并且成功了。