win32file.CreateFile() を使用してロシア語の Unicode 文字を含むファイルにアクセスしようとすると、次のようになります。
Traceback (most recent call last):
File "test-utf8.py", line 36, in <module>
None )
pywintypes.error: (123, 'CreateFile', 'The filename, directory name, or volume l
abel syntax is incorrect.')
これがコードです。Python 2.7 を使用しています。通常の Python 'open' で開くことができることを確認します。
# -*- coding: UTF-8 -*-
# We need the line above to tell Python interpreter to use UTF8.
# You must save this file with UTF8 encoding.
'''
Testing UTF8 Encoding
'''
import win32file
import os, sys
path = u'C:\\TempRandom\\utf8-1\\boo\\hi это русский end - Copy.txt'
# Clean path when printing since Windows terminal only supports ASCII:
print "Path: "+path.encode(sys.stdout.encoding, errors='replace')
# Test that you can open it with normal Python open:
normal_fp = open (path, mode='r')
normal_fp.close()
fileH = win32file.CreateFile( path, win32file.GENERIC_READ, \
win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, \
None, # No special security requirements \
win32file.OPEN_EXISTING, # expect the file to exist. \
0, # Not creating, so attributes dont matter. \
None ) # No template file
result, msg = win32file.ReadFile(fileH, 1000, None)
print "File Content >>"
print msg