И как оно поможет, если у записей есть только терминатор - и нет длины?
Все равно нужно сканировать поток.
Андрей СветловМожет я чего-то недопонял, но якобы имеется файл порядка 500 Мб, и длина каждой записи как раз расстояние между терминаторами ?
И как оно поможет, если у записей есть только терминатор - и нет длины?
Все равно нужно сканировать поток.
>>> from numpy import *
>>> a = memmap(r'c:\kam\w3\T3\W3_RT3.UNRST', uint16)
>>> a.shape
(138605462,)
>>> c = where(a==13)
>>> c[0][:10]
memmap([ 350427, 394751, 1280665, 1362469, 1765227, 2210903, 2253069,
2272839, 2717707, 2764369])
erlВ файле не латиница есть? Может быть просто с кодировками проблема, а не с массивом.
теперь из массива не могу нормальные данные достать, все перековеркалось.
Ни чего из примера не понял, обясните словами , плиз, если не затруднит …>>> from numpy import *
>>> a = memmap(r'c:\kam\w3\T3\W3_RT3.UNRST', uint16)
>>> a.shape
(138605462,)
>>> c = where(a==13)
>>> c[0][:10]
memmap([ 350427, 394751, 1280665, 1362469, 1765227, 2210903, 2253069,
2272839, 2717707, 2764369])
LexanderДа скорее всего с кодировками, но так все перековеркона, что не возможно разобраться что искать…erlВ файле не латиница есть? Может быть просто с кодировками проблема, а не с массивом.
теперь из массива не могу нормальные данные достать, все перековеркалось.
В том смысле, что полученные в массив символы (или часть их) нужно трактовать как строки в какой-то определенной кодировке.
erlЭто пример того как в файле порядка 200 Мб вычислены позиции всех “меток” со значением =13. Довольно быстро, даже на моем ноуте. Просто пример, вашими условиями я не располагаю.
Ни чего из примера не понял, обясните словами , плиз, если не затруднит …
asv13А если метка находится на нечетной позиции? uint16 уже не прокатит.
Это пример того как в файле порядка 200 Мб вычислены позиции всех “меток” со значением =13. Довольно быстро, даже на моем ноуте. Просто пример, вашими условиями я не располагаю.
erlСам скрипт не покажете ?
Если кто нибудь скажет как ускорить буду благодарен.