Aide-mémoire au format de fichier de données Python

Python comprend tous les formats de fichiers courants. De plus, chaque bibliothèque a son propre format de «tube chaud». La syntaxe, bien sûr, dans chaque format est purement individuelle. J'ai rassemblé toutes les fonctions pour travailler avec des fichiers de différents formats sur une seule feuille A4, avec l'application comme exemple d'utilisation dans le cahier jupyter.



J'ai divisé conditionnellement les formats en trois blocs selon la méthode d'utilisation. Comme vous le savez, des fichiers sont nécessaires pour échanger des informations: entre des personnes, entre des programmes (premier bloc), entre un ordinateur et un réseau (deuxième) et «sauvegarder une partie» - entre le même programme à différents moments (troisième bloc).

En bref sur chaque bloc:

1) Formats universels:

  • .csv - texte, valeurs séparées en principe par des virgules séparées, mais par exemple, l'exel russe préfère le séparer par des points-virgules, car la virgule est déjà utilisée dans les paramètres régionaux russes comme séparateur décimal;
  • .raw est un format binaire pour ceux qui n'aiment pas les formats de fichiers. Le type de données et, si les données sont multidimensionnelles, les tailles correspondantes doivent être transférées séparément, uniquement les données elles-mêmes dans le fichier;
  • .xls / .xlsx - l'ancien binaire (limitation de 65k lignes) et les nouveaux formats exel xml;
  • .mat est en fait également deux formats (tous deux binaires): l'ancien propriétaire et le nouveau basé sur hdf5. Python peut fonctionner avec les deux (via des bibliothèques).

2) Formats "réseau":

  • .json - textuel, ressemble à un dictionnaire en python, mais les guillemets ne peuvent être utilisés que deux fois;
  • .xml - textuel, similaire au html.

3) Formats natifs de python:

  • .pkl est un format binaire, tous les objets Python intégrés peuvent y enregistrer. Les classes personnalisées peuvent également le faire, et si le python enregistre quelque chose de mal, vous pouvez l'aider à travers des méthodes magiques. Prend en charge l'ajout à la fin d'un fichier existant.
  • .npy et .npz - dans numpy il y a jusqu'à deux de leurs formats (tous deux binaires). Ils sont apparus en réaction à la perte de compatibilité descendante dans pkl au moment de la transition python v2-> v3. La surcharge est minime (~ 100 octets de plus que le brut correspondant; pkl, cependant, est légèrement plus grand: ~ 150 octets de plus que le brut). Dans .npy, vous ne pouvez enregistrer qu'un seul tableau, et dans npz - plusieurs à la fois, et vous pouvez ensuite les extraire par leur nom.
  • .h5 - format bdf hdf5. Il est à noter que vous pouvez y stocker toute une structure de données hiérarchique, c'est presque un système de fichiers dans un fichier. De plus, il peut être ouvert dans matlab sans conversion. Inconvénients:

    a) les petits fichiers occupent un espace déraisonnablement grand (par exemple, 300 octets pkl contre 3,1 Mo pour h5),
    b) beaucoup de bugs ,
    c) il y a ajout à un fichier existant, mais si une erreur se produit (comme cela arrive), obtenir des données à partir de celui-ci sera problématique.

    Voici une analyse détaillée des avantages et des inconvénients de hdf5, en bref - un bon format pour l'échange de données, mauvais - à utiliser comme système de fichiers (par exemple, vous ne pouvez pas effacer un tableau, il suffit de copier le fichier sans lui).
  • .parquet est un format binaire pour les mégadonnées. Apache Parquet n'est pas un format natif Python, mais il est bien intégré aux pandas. Vous pouvez compresser / développer à la volée (rle, gzip, encodage de dictionnaire); compresse légèrement mieux qu'Apache Avro. Contrairement à avro, où les données sont stockées ligne par ligne (comme l'ordre C), dans le parquet, les données sont stockées colonne par colonne (comme l'ordre fortran). Grâce à cela, vous pouvez travailler efficacement avec des tables avec un grand nombre de colonnes.
  • jupyter a décidé de ne pas réinventer la roue -% store l'enregistre au format .pkl, mais pour une raison quelconque sans extension.

Feuille de protection elle-même:

- au format pdf
- au format png:

Un exemple d'utilisation de toutes les fonctions d'un diagramme: html avec table des matières et source ipynb

Source: https://habr.com/ru/post/fr481140/


All Articles