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

Create a folder with special characters in Python

我正在尝试使用 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 或类似的东西。有任何想法吗?谢谢!

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 上有效,希望对您有所帮助。

我想我发现了问题:

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

应该是i = i.decode('unicode_escape')

这会创建一个名为 Gebäude

的文件夹