ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
1334671 Топик полностью
Dingo (28.07.2023 11:39, просмотров: 83) ответил ЧaтЖПT на Конвертер из бинарного файла в CSV можно написать на Python с использованием библиотеки `csv`. Вот пример кода:
Выставил отступы, причесал, сделал опции из командной строки. 
# -*- coding: utf-8 -*-
import csv
import struct
import sys
def binary_to_csv(input_file, output_file, format_string):
  with open(input_file, 'rb') as input_binary:
    with open(output_file, 'w', newline='') as output_csv:
      csv_writer = csv.writer(output_csv)
      # Здесь нужно указать формат данных в бинарном файле
      # и их соответствие столбцам CSV
      # В данном примере считаем, что в файле хранятся два значения типа float
      # и они должны быть записаны в два столбца CSV
      ## format_string = 'ff' # Пример формата: два значения типа float
      ## field_names = ['Value 1', 'Value 2'] # Названия столбцов CSV
      ## csv_writer.writerow(field_names)
      chunk_size = struct.calcsize(format_string)
      while True:
        chunk = input_binary.read(chunk_size)
        if not chunk:
          break
        values = struct.unpack(format_string, chunk)
        csv_writer.writerow(values)
if len(sys.argv) <= 1 :
	print( "Нужны аргументы: \r\n входной файл, выходной файл, строка формата");
	print( "Формат (см. \'struct\'): \r\n\tb - signed char,\tB - unsigned char");
	print( "\th - signed short,\tH - unsigned short");
	print( "\tl - signed long,\tL - unsigned long");
	print( "\tq - signed long long,\tQ - unsigned long long");
	print( "\tf - float");
	print( "\td - double");
	print( "\tprefix: [\'<\'|\'>\'] - little endian, big endian");
	sys.exit(0);
# normal continue
binary_to_csv( sys.argv[1], sys.argv[2], sys.argv[3] )