2 votes

Fichier de type espace efficace pour stocker des flottants double précision

Je suis actuellement en train d'exécuter des simulations écrites en C puis d'analyser les résultats à l'aide de scripts Python. En ce moment, le programme C écrit les résultats (beaucoup de valeurs double) dans un fichier texte qui occupe lentement mais sûrement beaucoup d'espace disque.

Existe-t-il un format de fichier plus efficace en termes d'espace pour stocker de nombreuses valeurs numériques? Idéalement, mais pas nécessairement, il devrait répondre aux critères suivants :

  1. Les valeurs peuvent être ajoutées en continu de sorte que toutes les valeurs ne doivent pas être en mémoire en même temps.

  2. Le fichier est plus ou moins facilement lisible en utilisant Python.

J'ai l'impression que c'est une question très courante, mais en cherchant une réponse je n'ai trouvé que des descriptions de différents types de données en C.

2voto

VladP Points 464

Fichier binaire, mais s'il vous plaît, faites attention au format des données que vous enregistrez. Si possible, réduisez la largeur de chaque variable que vous utilisez. Par exemple, avez-vous besoin d'enregistrer des décimales ou des nombres flottants, ou pouvez-vous utiliser simplement des entiers de 16 ou 32 bits? De plus, vous pouvez appliquer certains schémas de compression pour compresser les données avant de les enregistrer, et les décompresser après les avoir lues, mais cela nécessite beaucoup plus de travail et c'est probablement excessif pour ce que vous faites.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X