- 论坛徽章:
- 26
|
没有深入学习过Python,我是这样理解
拿一种数据类型去读已知的另一种类型的数据,主要还是 Dtype 格式不匹配
4 ITEMS:- [('HeaderFlag', '<i4'), ('Version', '<i2'), ('id', <'i2'), ('DataPackageSize', '<i4')]
复制代码 5 ITEMS: 不可能! 匹配- [('HeaderFlag', '<i4'), ('Version', '<i2'), ('id', <'i2'), ('Item', 'i<2'), ('DataPackageSize', '<i4')]
复制代码 如果我有理解你的问题?- #!/usr/bin/python2
- # coding: utf-8
- import numpy as NP
- TYPE = NP.dtype([('name1', '|S6'), ('DataPackageSize', '<f8')])
- LIST = [('n1234', 1.2), ('n2246', 3.4), ]
- ARRY = NP.array(LIST, dtype=TYPE)
- print ARRY['DataPackageSize']
- ARRY.tofile("file_name")
- # 是方法 [不是捷径!!] [color=Red](READ ALL SELECT ONE[/color])
- def GET(FILE, TYPE, ITEM, SIZE):
- A = NP.fromfile(FILE, dtype=TYPE)
- for I, S in enumerate(A[ITEM]):
- if S == SIZE: return A[I]
- # IF
- V3DOT4 = GET("file_name", TYPE, 'DataPackageSize', 3.4)
- print V3DOT4 # ('n2246', 3.4
- # OR IF
- V1DOT2 = GET("file_name", TYPE, 'DataPackageSize', 1.2)
- print V1DOT2 # ('n1234', 1.2)
- # 捷径 => fromfile(...count=1) count => Number of items to read
- # freshNew [color=Red]AS FIRST ITEM[/color]
- # 1.2
- # LIST = [('n1234', 1.2), ('n2246', 3.4), ]
- def GET_DataPackageSize_NEW(FILE, TYPE):
- # 只读 1 项, WHEN freshNew AS FIRST ITEM
- A = NP.fromfile(FILE, dtype=TYPE, count=1)
- return A[0]
- V1DOT2 = GET_DataPackageSize_NEW("file_name", TYPE)
- print V1DOT2 # ('n1234', 1.2)
复制代码 |
|