2
类似的问题,阅读文件:蟒蛇 - 使用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
即使文件明确包含更多数据,也不会打印“Hi”。 我的问题是如何确保我在不使用大型缓冲区的情况下阅读整个文件?