在Python中创建一个包含特殊字符的文件夹

时间:2018-06-10 08:29:00

标签: python python-2.7 encoding special-characters mkdir

我试图用os.mkdir在Python中创建一个文件夹,但我还没有成功。问题是我想首先浏览一个列表,对于该列表中的每个项目,我必须创建一个具有该特定名称的文件夹。该列表有时包含特殊字符,如ä, ü, ë等,在unicode中。

这就是我现在所拥有的:

# -*- coding: utf-8 -*-
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

data_dir = "C:\Test"
lst = ["Geb\u00e4ude"]

for i in lst:
    print i
    i = i.decode('unicode_escape').encode("utf8")
    print i

    os.mkdir(os.path.join(data_dir, i))

我第一次打印i我显然得到Geb\u00e4ude,这是我在所有解码和编码后第二次得到Gebäude。到目前为止一切都很好。

问题是我现在想要在data_dir中创建一个名为Gebäude的文件夹,但在调用mkdir后,我会收到一个包含其他奇怪字符的文件夹,例如Gebäude或类似的东西。有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

Python 3:

# -*- coding: utf-8 -*-
import os
os.mkdir('Gebäude')

Python 2.7:

# -*- coding: utf-8 -*-
import os
os.mkdir(u'Gebäude')

至少这适用于macOS,我希望它有所帮助。

答案 1 :(得分:0)

我想我发现了问题:

i = i.decode('unicode_escape').encode("utf8")

应为i = i.decode('unicode_escape')

这会生成一个名为Gebäude

的文件夹