Создать папку со специальными символами в Python - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь создать папку в Python с os.mkdir, но я не очень успешен.Дело в том, что я сначала хочу просмотреть список, и для каждого элемента в этом списке мне нужно создать папку с этим конкретным именем.Список иногда содержит специальные символы, такие как ä, ü, ë и т. Д. В Юникоде.

Это то, что у меня сейчас есть:

# -*- 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 голосов
/ 10 июня 2018

Кажется, я нашел проблему:

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

Это должно быть i = i.decode('unicode_escape')

Это делает папку с именем Gebäude

0 голосов
/ 10 июня 2018

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, надеюсь, это поможет.

...