Похожий вопрос:питон - прочитать файл, используя win32file.ReadFile
What's the correct way to use win32file.ReadFile to get the output from a pipe?
вопрос я однако был не ответил на этот вопрос. Когда я называю
result, data = win32file.ReadFile(my_file, 4096, None)
результат всегда 0, который в соответствии с документацией означает успех:
The result is a tuple of (hr, string/PyOVERLAPPEDReadBuffer), where hr may be 0,
ERROR_MORE_DATA or ERROR_IO_PENDING.
Даже если я устанавливаю буфер до 10 и файл гораздо больше результат 0 и данные являются строка, содержащая первые 10 символов.
result, buf = win32file.ReadFile(self._handle, 10, None)
while result == winerror.ERROR_MORE_DATA:
result, data = win32file.ReadFile(self._handle, 2048, None)
buf += data
print "Hi"
return result, buf
«Привет» никогда не печатается, даже если файл явно содержит больше данных. Проблема у меня есть, как я могу убедиться, что я читаю весь файл без использования смешного большого буфера?