2017-08-02 41 views
2

我试图到处搜索,但无法找到任何相关信息。蟒蛇将内存视图转换为字符串

如下面的代码的结果:

overlapped = pywintypes.OVERLAPPED() 
buffer = win32file.AllocateReadBuffer(1024*4) 
fullDataRead = [] 
hr, data = win32file.ReadFile(handle, buffer, overlapped) 
n = win32file.GetOverlappedResult(handle, overlapped, 1) 
read = str(data[:n]) 
fullDataRead.append(read) 
print(fullDataRead) 

我得到

['<memory at 0x0000026821801348>'] 

,但我需要字符串或者是内部字节。任何想法如何阅读memoryview对象?谢谢

+1

能不能请你更新你的问题是一个[最小,完整,可验证的示例](HTTPS:/ /stackoverflow.com/help/mcve)? – mattjegan

+0

这只是一个'hr,data = win32file.ReadFile()'在'data'中返回的是'memoryview'而不是'bytes'或'string'。我找不到任何信息如何处理它 – Masha

回答

5

一个memory对象可以被转换成使用.tobytes()像这样的字符串:

a = memoryview('mystring') 
print(a) # <memory at 0x10cbebb98> 
print(a.tobytes()) # 'mystring'