1

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
4

1 に答える 1