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 :

Faire une substitution sur un fichier texte [Python 3.X]


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut Faire une substitution sur un fichier texte
    Bonjour/Bonsoir,
    Désolé de vous embêter pour un problème aussi futile ( je pense ), je suis débutant dans ce langage je dois éditer un fichier texte que j'ai créée. Dans ce fichier texte, il y a pour le moment une ligne qui correspond à l'intégralité d'un dictionnaire ( environs 1Go, si jamais c'est important), ce que j'aimerais faire c'est une substitution de mes "," en "\n". J'ai testé en bash avec du sed mais lorsque je lance en python en os.system cela ne fonctionne plus. J'ai pu voir que certaine personne passait par un subprocess mais cela ne fonctionne toujours pas . Du coup, j'ai essayé de passer par un .replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    with open ('monfichier.txt','w') as fic:
    	for l in fic:
    		a=l.replace(">","\n")
    		fic.write(a)
    		print(l)
    le problème c'est que lorsque je met mon fichier en écriture, j'obtiens ce message d'erreur "io.UnsupportedOperation: not readable" mais en r+ j'ai l'impression que les substitutions sont mise directement à la suite du fichier comme un append
    Alors si vous avez des pistes pour m'aider je suis preneur
    Merci d'avance, si vous avez besoin d'informations supplémentaire sur mon problème n'hésitez pas.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Citation Envoyé par IBalou Voir le message
    Alors si vous avez des pistes pour m'aider je suis preneur
    C'est pas facile de ré-écrire un fichier: lisez le fichier original et créez un fichier modifié.

    Citation Envoyé par IBalou Voir le message
    il y a pour le moment une ligne qui correspond à l'intégralité d'un dictionnaire ( environs 1Go, si jamais c'est important)
    Il aurait été astucieux de créer le fichier "proprement", dès le départ.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    Vous n'avez pas d'autre choix que d'ouvrir 2 fichiers, votre ancien et votre nouveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with open('monfichier.txt') as f1, open('monfichier_nouveau.txt', 'w') as f2:
    	f2.write(f1.read().replace('>', '\n'))
    ceci dit avec un fichier de 1GO je ne suis pas sur que cette méthode à la va-vite soit la meilleure, si c'est un dictionnaire peux être voir json.load.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    C'est pas facile de ré-écrire un fichier: lisez le fichier original et créez un fichier modifié.



    Il aurait été astucieux de créer le fichier "proprement", dès le départ.

    - W
    Bonjour,
    Merci pour cette réponse, mais je ne comprends pas bien ce que proprement signifie ? Je pensais justement partir d'un dictionnaire qui contienne toute les données dont j'ai besoin afin de pouvoir travailler ce fichier.

    Je vais essayer de lire ce fichier et créer un nouveau fichier a partir de la sortie standard. Merci

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut
    Citation Envoyé par flapili Voir le message
    Vous n'avez pas d'autre choix que d'ouvrir 2 fichiers, votre ancien et votre nouveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with open('monfichier.txt') as f1, open('monfichier_nouveau.txt', 'w') as f2:
    	f2.write(f1.read().replace('>', '\n'))
    ceci dit avec un fichier de 1GO je ne suis pas sur que cette méthode à la va-vite soit la meilleure, si c'est un dictionnaire peux être voir json.load.
    Cette méthode me semble effectivement longue, néanmoins l'idée du json.load me semble adéquat, du moins de ce que j'en ai compris

    Merci beaucoup pour votre aide.



    EDIT: Finalement la méthode que vous proposiez à été instantanée Merci beaucoup

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Citation Envoyé par IBalou Voir le message
    Bonjour,
    Merci pour cette réponse, mais je ne comprends pas bien ce que proprement signifie ?
    C'est à dire faire un fichier où il n'y a pas besoin de faire de bricolage, retraiter l'ensemble des lignes d'un fichier juste pour remplacer quelques caractères.

    Si vous aviez fait cela dès le 1er traitement, votre question n'aurait pas lieu d'être.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Faire une boucle sur plusieurs fichiers excel
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 09/03/2015, 12h52
  2. [AJAX] AJAX faire une boucle sur un fichier.
    Par freeman43 dans le forum AJAX
    Réponses: 3
    Dernier message: 01/04/2011, 03h36
  3. [MySQL] faire une modification sur un fichier upload
    Par ghadghoud dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 27/04/2010, 11h35
  4. sauvegarder une matrice sur un fichier texte
    Par soujava dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 06/05/2008, 13h51
  5. Comment faire une insertion dans un fichier texte ?
    Par Isa31 dans le forum Langage
    Réponses: 10
    Dernier message: 28/12/2004, 09h06

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