我想将 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。