2015-08-05 2 views
0

Я делаю проект в python с помощью OpenCV. Я должен хранить большое количество целочисленных данных (функции изображений в базе данных) в отдельном файле. Я могу использовать .txt-файл, но он хранит целочисленные значения в виде строк. Есть ли способ, чтобы я мог хранить целочисленные значения непосредственно в виде целых чисел в python, например .dat-файле в MATLAB.?.dat файл в python

+0

Что вы имеете в виду * "целые значения непосредственно в виде целых чисел" * ?! – jonrsharpe

+0

Я имею в виду, что если я попытаюсь сохранить 5 в .txt-файле, он будет сохранен как символ, а не целое число. – Pramod

+0

Что такое * "целое число" *, хотя? Вы говорите о двоичном представлении? Сколько бит на число? – jonrsharpe

ответ

0

Вы можете использовать struct, чтобы упаковать целые числа в формате байтов и записать их в файл dat.

С целыми числами это приведет к созданию файла, содержащего 4 байта на целое число, что позволит сохранить немного пространства (в текстовом формате), если у вас очень большие числа. Если у вас меньше номеров, формат csv может быть лучше.

import struct 

data = [1,2,3,4,5,6,7,8,9] 

with open('data.dat', 'wb') as data_file: 
    data_file.write(struct.pack('i'*len(data), *data)) 

Тогда читать его обратно в

with open('data.dat', 'rb') as data_file: 
    values = struct.unpack('i'*len(data), data_file.read()) 
+0

, вероятно, неэффективен для данных изображения с миллионами пикселей. Есть [другие опции] (http://stackoverflow.com/questions/31833610/dat-file-in-python#comment51653849_31833610) – jfs

+0

Возможно, это так. Наиболее эффективным и сжатым форматом является, вероятно, сам образ. – Brobin

Смежные вопросы