Если вы работаете с обычными строками 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) позаботится обо всем остальном.