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 :

modification fichier ?


Sujet :

Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Par défaut modification fichier ?
    salut..

    je cherche a modifier (ecrire, effacer, réecrire, inserer, aller a ligne) dans un fichier

    je connais le mode R+ qui permet de réecrire. mais si la chaine est trop longue elle ne s'insère pas dans là ou je le souhaite, elle est simplement réecrite par dessus.
    il y a t-il une méthode .insert(), ainsi qu'un moyen pour aller a la ligne, ou pour effacer dans un fichier(suppr)

    bref le minima pour un fichier txt koi

    j'ai quelques truc a enregistrer et pas trop envie de ma casser (pour l'instant avec mysql, ou une database)

    juste pouvoir ecrire et réecrire dans un fichier avec python..

    j'ai fait un peu le tour, et il me manque ces deux ou trois fonctions, existe-t-elle ??

    merci d'avance..

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Non elles n'existent pas.
    Tu peux par contre réécrire le fichier à chaque enregistrement (en gardant par exemple un modèle "en dur" dans ton script)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 27
    Par défaut
    pour acceder a des endroits precis d'un fichier et le modifier, il faut ouvrir le fichier en mode binaire...
    je te renvois a cet exemple de dive into python ou le fichier est ouvert en binaire.. c'est pas le meilleur des exemple poour ton cas , mais c'est le premier qui me reviens.. en tous cas la piste est par là. 'rb'

    http://diveintopython.adrahon.org/ob...ileinfo.divein

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Par défaut
    arff, pô possible , et moi qui croyait qu'en python tout etait possible hihihi...

    y'a pas un moyen pour permettre a python d'ecrire "normalement" dans un fichier txt.. on ne peux pas recuperer les fonctions clavier par exemple pour se faire..

    j'suis encore bien débuttant, et la solution de tout réenregistrer vas il contre la raison.. je ne connais pas encore la taille de mes fichiers au final, et cela ne serait pas bien pratique.

    quand aux base de donnée, pour l'instant je n'y connais rien, et a ce que j'ai pu lire leur mise en oeuvre est un brin complexe.. ou est plutôt une solution bien lourde.

    que faudrait-il faire pour pouvoir avoir les methodes insert, suppr, entrée(retour a la ligne) (réecrire tout python??)

    ps:je ne maitrise pas encore les classes et pas mal de truc(enormement)
    c'est pourquoi ces trois fonctions me serait bien utile..(remarque il me semble que cela serait utile pour pas mal d'apllis a ce que j'ai pu lire, parceque mise en place facliement)

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Si le fichier n'est pas trop volumineux, tu peux charger son contenu en mémoire et utiliser ce tampon pour les modifications. Ensuite, tu enregistres le contenu du tampon dans le fichier original (après avoir fait éventuellement une copie de sauvegarde de ce dernier).

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Citation Envoyé par Quetzal Voir le message
    que faudrait-il faire pour pouvoir avoir les methodes insert, suppr, entrée(retour a la ligne) (réecrire tout python??)

    Mais non ... il suffit juste de créer une class fille a File et d'implémenter ce dont tu as besoin ...

    Si cela n'existe pas de base c'est parce que ton besoin est trop ciblé et qu'il n'y a pas de maniere générique pouvant répondre a tous les besoins pour le faire...

    Donc a toi de l'implémenter.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Par défaut
    haa!! c'est possible rien qu'en rajoutant une classe fille a file?? cool..

    est-ce compliqué a faire?? et ou trouver cette fameuse classe fille??

    mes besoins sont assez spécifique il est vrais. et somme toute c'est une bonne occasion de me brancher sur les classes qui me rebuttent encore un peu, il y a deja pas mal a faire avec les quelques notions de base que je possède, mais comme là je ne vais pas avoir le choix

    quelques petite indication peut-etre sur le modus opérandi de l'implémnetaiton de ses deux ou trois fonctions/méthode??

  8. #8
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    A priori c'est un objet chiant a etendre mais c formateur

    et la classe fille c a toi de la créer comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class MyFile(file):
        reimplementer les methodes ici

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Par défaut
    oui ça, j'avais vu comment commencer, je voiyais cela un peu comme cela, par contre j'ai un peu de mal a savoir quelle fichier ouvrir, pour implémenter cette classe.

    j'ai regarder un peu partout, j'ai des modules multifile, machintruc file et autres, qui contiennent des méthodes, des classes, propres au files object décrit dans la libririe de référence...

    je me doute aussi pour avoir tenté de lire ces fichiers que ce n'est pas "super" simple de faire quelquechose de vraiment "propre"

    ce qui me fait poser beaucoup de question c'est aussi comment insérer un objet, soi repousser l'ensemble des autres part du fichier, idem pour suprimer qui demande d'elliminer des espaces et pas simplement une donnée.

    en lisant multitfile dans python25/lib. la methode seek se limite a un simple renvoie de position du "curseur"..

    bref, je suis assez perplexe quant a la façon de proceder..

    merki d'avance

  10. #10
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Salut,

    tu peux créer une classe qui gère une liste, chaque élement representant une ligne de ton fichier texte.
    Les mèthodes travaillent sur cette liste, pour insérer, supprimer, etc..
    Une mèthode save te permet alors d'enregistrer tes lignes dans ton fichier.

Discussions similaires

  1. Sftp modification fichier
    Par niconeo dans le forum Réseau
    Réponses: 2
    Dernier message: 29/03/2006, 17h31
  2. [VB.NET] modification fichier XML
    Par betaphp dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/11/2005, 11h13
  3. [FLASH MX] Modification fichier SWF
    Par tom06440 dans le forum Flash
    Réponses: 8
    Dernier message: 19/04/2005, 20h23
  4. [MFC] recupération date modif fichier
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 21/01/2005, 18h47
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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