Python и файловая система Windows с не-ascii символами - PullRequest
0 голосов
/ 24 февраля 2010

Я хочу написать папку в системах Windows, Vista и Win7 с файловыми системами NTFS. Папки могут содержать символы å, ä и / или ö, например «förjävligt».

Файлы python и каждая строка в нем в настоящее время находятся в UTF-8, как мне преобразовать их в набор файловой системы Windows?

Ответы [ 2 ]

3 голосов
/ 24 февраля 2010

Если вы работаете с обычными строками Python 2, вы можете просто преобразовать их в Unicode

# -*- coding: utf-8 -*-
normalString = "äöü"

# Now convert to unicode. Specified encoding must match the file encoding
# in this example. In general, you must specify how the bytes-only string
# contained in "normalString" is encoded.
unicodeString = unicode(normalString, "utf-8")

with open(unicodeString, "w") as f:
    ...

и создайте файлы, используя эти строки Unicode. Python (и косвенно Windows API) позаботится обо всем остальном.

1 голос
/ 24 февраля 2010

Если вы хотите сделать строки действительно удобными для работы в Windows, вы можете использовать это safeFilenameCodec . Это подмножество допустимых персонажей, но вам не придется беспокоиться о сумасшествии. И это имеет щедрое лицензирование.

...