具有非ascii字符的Python和Windows文件系统

时间:2010-02-24 15:39:42

标签: python windows ntfs

我想在Windows系统,Vista和Win7上使用NTFS文件系统编写一个文件夹。 例如,文件夹可能包含字符å,ä和/或ö,“förjävligt”。

python文件及其中的每个字符串目前都是UTF-8,如何将其转换为Windows文件系统的套件?

2 个答案:

答案 0 :(得分:3)

如果你正在使用普通的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 :(得分:1)

如果你想让字符串非常适合在Windows中使用,你可以使用这个safeFilenameCodec。它是允许字符的子集,但您不必担心任何疯狂的过关。它有慷慨的许可。