2016-05-20 52 views
0

我試圖將文件中的數據值轉換爲數組。我至今是如何將二進制數據文件中的解壓值轉換爲python中的可用值

import os, io, struct, array 

file=open('filename','rb') 

myarray=[0]*1000 

for i in range(100): 
    myarray[i]=struct.unpack('i', file.read(4)) 

什麼最終填充陣列是一樣的東西

((5,),(24,),(10,)....) 

我如何將其轉換爲像

(5,24,10,...) 

謝謝!

回答

0

使用chain功能扁平化。你tupletuple

from itertools import chain 

result = ((5,),(24,),(10,)) 
result = tuple(chain(*result)) 
# (5, 24, 10) 

您的代碼看起來應該像這樣:

for i in range(100): 
    myarray[i]=struct.unpack('i', file.read(4)) 

result = list(chain(*myarray[:100])) # you may want to keep this as a list 
+0

感謝您的快速回復摩西。它告訴我,「當我嘗試這樣做時,」TypeError:'int'對象不可迭代「。有什麼想法嗎? – Lou

+0

你嘗試過什麼? 'list(chain(* myarray))''應該可以工作 –

+0

這就是我添加到代碼中的結果:'result = myarray result = chain(* result)'當我這樣做時它現在說'TypeError:'itertools.chain 'object is not subscriptable'如果我嘗試'list(result [0:10])' – Lou

相關問題