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 :

Problème Saturation Processeur


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut Problème Saturation Processeur
    Bonjour,
    Pour débuter avec Python, je me suis lancé sur un petit projet.
    Dans un premier temps extraire certaines lignes d'un fichier source -> fichier destination.
    Le script semble fonctionner correctement.
    J'obtiens un fichier destination incomplet (traitement partiel du fichier source).
    IDLE ne me rends pas la main.
    J'ai comme processeur un i5 2430M (2 coeurs 4 threads), le processus pythonw.exe utilise 25% de la puissance Proc.
    Voici le code :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    #!/usr/bin/python
    # -*- coding:Utf-8 -*-
     
    from re import search
     
    source = "Source.txt"
    destination = "Destination.txt"
     
    def filtre(source,destination):
        "recopier certaines lignes d'un fichier"
     
        fs = open(source, 'r')
        fd = open(destination, 'w')
     
        while 1:
            ligne = fs.readline()
            ligne_str = ligne.strip()       # Suppression espaces Av/Ap
     
            if search('^[-_]{,1}[ ]{,1}Destinataire',ligne_str) :    
                fd.write(ligne_str)
                fd.write("\n")
     
            elif search('^[ ]{18}[A-Z]',ligne) :
                fd.write(ligne_str)
                fd.write("\n")
     
            elif search('^Montant',ligne_str) :
                fd.write(ligne_str)
                fd.write("\n")
     
            elif search('^Référence',ligne_str) :
                fd.write(ligne_str)
                fd.write("\n")
     
            elif search('^Libel',ligne_str) :
                fd.write(ligne_str)
                fd.write("\n")
                fd.write("\n")
     
        fs.close()
        fd.close()
        return
     
    filtre(source,destination)
    Merci

    Kii

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le problème, c'est le "while 1" qu'il n'est pas prévu d'arrêter.

    Voilà en gros comment j'écrirais ce code (mais je n'ai pas essayé!):

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    from re import search
     
    def filtre(source,destination):
        "recopier certaines lignes d'un fichier"
     
        with open(source, 'r') as fs:
            with open(destination, 'w') as fd:
                for ligne in fs:
                    ligne_str = ligne.strip()
     
                    if search('^[-_]{,1}[ ]{,1}Destinataire',ligne_str) :
                        fd.write(ligne)
     
                    elif search('^[ ]{18}[A-Z]',ligne_strtr) :
                        fd.write(ligne)
     
                    elif search('^Montant',ligne_str) :
                        fd.write(ligne)
     
                    elif search('^Référence',ligne_str) :
                        fd.write(ligne)
     
                    elif search('^Libel',ligne_str) :
                        fd.write(ligne)
        return
     
    source = "Source.txt"
    destination = "Destination.txt"
     
    filtre(source,destination)

  3. #3
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    Bonjour Tyrtamos,

    Grand merci à toi . Le script fonctionne bien.
    Maintenant que tu le dis, il est logique que la saturation proc soit liée au fait que l'instruction ne puisse sortir de la boucle .
    Maintenant que les données sont bien extraites, je vais pouvoir passer à l'étape suivante qui est le formatage des données dans un autre fichier texte.
    Encore grand merci .

    Kii

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

Discussions similaires

  1. Problème saturation RAM après GFIX SWEEP SET statistics INDEX
    Par korntex5 dans le forum Administration
    Réponses: 4
    Dernier message: 29/10/2013, 08h50
  2. problème consommation processeur
    Par picall dans le forum Embarqué
    Réponses: 19
    Dernier message: 19/07/2013, 16h39
  3. Problème charge processeur
    Par scary dans le forum Général Java
    Réponses: 4
    Dernier message: 22/11/2009, 21h45
  4. Eclipse 3.2 WTP problème saturation mémoire
    Par javanat dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 03/09/2007, 20h11
  5. Problème de détection de nouveau processeur
    Par zakfa dans le forum Composants
    Réponses: 12
    Dernier message: 24/01/2005, 17h09

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