Tarfile提取路径不能包含特殊字符

时间:2016-06-21 14:58:40

标签: python python-2.7 unicode utf-8 tarfile

我想将tarfile提取到它自己的路径,但是如果文件的路径包含任何特殊字符(如ö)。

如果我不提供提取路径,它会将tarfile提取到我的项目目录。

这是我的代码:

# -*- coding: utf-8 -*-
import tarfile, os

filepath = u"C:\\Users\\Ayse\\Desktop\\somefolderö\\tarfile.tar.gz"
dirname = os.path.dirname(os.path.realpath(filepath))
dirname = dirname.encode('utf-8')

tar = tarfile.open(filepath, "r:gz")
tar.extractall(path=dirname) #error occurs on this line
tar.close()

我在 tar.extractall(path = dirname)行上收到此错误:

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

我试着像这样编码路径变量:

filepath = filepath.encode('utf-8')

编码后,代码可以正常工作。但是,tarfile将被解压缩到somefolderö文件夹。我想把它提取到somefolderö

长话短说,ö变为

我在Windows 8.1上使用python 2.7。

0 个答案:

没有答案
相关问题