extract fun rarfile模块能处理汉字吗?

2024-06-17 15:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python中的rarfile和unrar来提取rar档案中的一些汉字命名文件。 当我使用拉罗布吉.提取器(TargetDir)函数,它起作用。 但当我使用

#encoding:utf-8
...
for fl in rarobj.namelist():
    rarobj.extract(fl,TargetDir)

出现错误:

^{pr2}$

变更如下:

#encoding:gbk
    ...
    for fl in rarobj.namelist():
        rarobj.extract(fl,TargetDir)

还有一个错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)

和使用

for fl in rarobj.namelist():
    rarobj.extract(fl.encode('gbk'),TargetDir)

可以消除这个错误,但是不能提取fl文件,因为文件名不在rar存档中。在

我如何处理这个问题?在

在名字列表()是

[u'E:\\2y.pptx', u'E:\\\u6211\u662fabc.pptx', 'E:\\3b.docx', u'E:\\2x.docx', 'E:\\1a.pptx', 'E:\\1b.docx']

Tags: 文件infor错误extractencodingdocxrar