Stockage de données Simple en Python

je suis à la recherche d'une solution simple en utilisant Python pour stocker des données comme un fichier plat, de sorte que chaque ligne est une représentation de chaîne d'un tableau qui peut être facilement interprété.

je suis sûr que python a une bibliothèque pour faire une telle tâche facilement, mais jusqu'à présent toutes les approches que j'ai trouvées semblent comme il aurait été négligent de le faire fonctionner et je suis sûr qu'il y a une meilleure approche. Jusqu'à présent j'ai essayé:

  • le tableau.méthode toFile () mais ne pouvais pas comprendre comment le faire fonctionner avec des tableaux imbriqués de chaînes, il semblait orientées vers les données entier.
  • listes et ensembles n'ont pas une méthode toFile intégrée, donc j'aurais dû la Parser et l'encoder manuellement.
  • CSV a semblé comme une bonne approche, mais cela nécessiterait également l'analyse manuelle, et ne m'a pas permis de simplement ajouter de nouvelles lignes à la fin - de sorte que tous les nouveaux appels le CSVWriter écraserait le fichier des données existantes.

j'essaie vraiment d'éviter d'utiliser des bases de données (peut-être SQLite mais cela semble un peu exagéré) parce que j'essaie de développer ceci pour n'avoir aucun pré-requis logiciel en dehors de Python.

3
demandé sur KeyboardInterrupt 2009-05-17 23:00:20

5 réponses

le fichier doit être lisible par l'homme? Si non, shelve est vraiment facile à utiliser.

4
répondu Johan Kotlinski 2009-05-17 19:15:45

en plus de pickle ( mentionné ci-dessus ), il y a json (intégré à 2.6, disponible via simplejson avant cela), et marshal . Aussi, il y a un reader dans le même csv module l'écrivain est dans.

mise à jour: comme S. Lott l'a souligné dans un commentaire, Il ya aussi YAML, disponible via PyYAML , entre autres.

10
répondu Hank Gay 2017-05-23 10:32:53

je suis à la recherche d'une solution simple en utilisant Python pour stocker des données comme un fichier plat, de sorte que chaque ligne est une représentation de chaîne d'un tableau qui peut être facilement interprété.

est-ce que les données ne seront jamais analysées que par des programmes Python? Sinon, j'éviterais pickle et al (shelve et marshal) car ils sont très spécifiques à Python. JSON et YAML ont l'avantage important que les parsers sont facilement disponibles pour la plupart des langues.

2
répondu 2009-05-17 21:16:12

Cette solution à SourceForge utilise uniquement des modules Python standard:

y_serial.py module:: entrepôt des objets Python avec SQLite

"Sérialisation + persistance :: en quelques lignes de code, de compresser et de les annoter des objets Python dans SQLite; puis le récupérer plus tard dans l'ordre chronologique par mots-clés, sans SQL. Module "standard" le plus utile pour une base de données pour stocker des données sans schéma."

http://yserial.sourceforge.net

SQLite n'est pas" exagéré " du tout -- vous serez étonnés de voir à quel point il est simple; en plus, il résout des problèmes plus généraux de persistance de données.

1
répondu 2009-09-13 05:29:56