IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ecrire et lire rapidement des données


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut Ecrire et lire rapidement des données
    Bonjour,
    je voudrais avoir une méthode rapide pour écrire et lire des données. Je suis en train de me faire un outil qui va parser des documents pour les mettre en forme (export PDF, HTML et Tout en Texte pour les aveugles). L'écriture et la lecture dans le fichier de stockage se feront lignes par lignes dans l'ordre.

    Pour le moment j'ai opté pour un stockage ligne par ligne des lignes parsées avec des infos complémentaires dans un tableau, mais si le fichier à parser est trop gros cela va vite poser problème. D'où ma question.

    Toute info. est la bienvenue.

  2. #2
    Membre confirmé Avatar de arnaudk
    Inscrit en
    Février 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 38
    Par défaut
    Salut,

    Suis pas sûr d'avoir tout compris, mais ce ne serait pas plus simple de stocker les lignes directement dans un fichier plutôt que dans un tableau ?

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par arnaudk Voir le message
    Suis pas sûr d'avoir tout compris, mais ce ne serait pas plus simple de stocker les lignes directement dans un fichier plutôt que dans un tableau ?
    L'intérêt du tableau c'est qu'il fonctionne au sein du programme tandis qu'un fichier extérieur est modifiable par l'utilisateur (même si cela a peu de chance d'arriver).

    En fait, je vais effectivement mettre dans un fichier les lignes décortiquées. Cela n'empêche pas ma question, à savoir : existe-t-il une méthode rapide en terme d'exécution pour stocker les données ? Quel mode d'écriture faut-il privilégier ?

  4. #4
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Citation Envoyé par rambc Voir le message
    existe-t-il une méthode rapide en terme d'exécution pour stocker les données ?
    Un accès disque peut (et doit) toujours être considéré comme lent, extrèmement lent.
    A moins de n'avoir un réel besoin de ce fichier, comme le traitement d'une quantité énorme de données (plus que la ram raisonnablement exploitable, style 1/5 du total) ou le besoin d'une persistance, c'est bien mieux pour les performances de l'éviter.

    D'ailleurs, si le pc vient à manquer de mémoire, il passera lui-même par des fichiers.

    Mais si malgré tout tu as besoin de ces fichiers, je crois que le plus efficace serait d'utiliser pickle en écriture et lecture séquentielle. A toi de comparer les performances avec et sans pickle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import cPickle as pickle
    >>> a = ["Hello", "World"]
    >>> s = pickle.dumps(a, pickle.HIGHEST_PROTOCOL)
    >>> s
    '\x80\x02]q\x01(U\x05Helloq\x02U\x05Worldq\x03e.'
    Edit: Tout dépend de ce dont tu as besoin évidemment. Si tu stockes du texte simple, tu n'auras sans doute pas besoin de pickle. A toi de trouver la solution qui convient le mieux à tes besoins.

  5. #5
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par Antoine_935 Voir le message
    D'ailleurs, si le pc vient à manquer de mémoire, il passera lui-même par des fichiers.
    Je ne le savais pas...

    Pour cPickle, comment lit-on un tableau stocké ? Je vais opter pour cette solution car j'ai plusieurs scripts qui vont avoir besoin de mes données à des niveaux différents.

  6. #6
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Voila un exemple concret d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    >>> try:
    ...     import cPickle as pickle
    ... except ImportError: # cPickle n'est pas disponible
    ...     import pickle
    ... 
    >>> f = open("testPickle.dat", "wb") # Ouvrir en ecriture binaire
    >>> tableau = ["Hello", "World", "!"]
    >>> pickle.dump(tableau, f, pickle.HIGHEST_PROTOCOL)
    >>> tableau2 = ["Good", "Bye"]
    >>> pickle.dump(tableau2, f, pickle.HIGHEST_PROTOCOL)
    >>> 
    >>> f.close()
    >>> 
    >>> f = open("testPickle.dat", "rb")
    >>> print(pickle.load(f))
    ['Hello', 'World', '!']
    >>> print(pickle.load(f))
    ['Good', 'Bye']

Discussions similaires

  1. [ODBC] Se connecter, lire, afficher des données bdd firebird avec php
    Par firebird1 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 12/02/2015, 11h01
  2. [SQL-Server] Ecrire et lire des données Unicode dans MSSQL 2005
    Par kaboume dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 30/09/2010, 08h27
  3. Ecrire et lire des données d'une classe
    Par rtg57 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 03/04/2010, 19h11
  4. [VC++] creer, ecrire et lire dans des fichiers .ini
    Par ksoft dans le forum Visual C++
    Réponses: 11
    Dernier message: 06/09/2006, 10h18
  5. lire et ecrire des donnée dans un .ini
    Par gsmdu62 dans le forum Delphi
    Réponses: 6
    Dernier message: 25/05/2006, 03h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo