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 :

écriture 1021 fichiers


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut écriture 1021 fichiers
    Bonjour à tous,
    je viens de faire un code qui me convertit un fichier texte avec une seule colonne contenant des données en un fichier contenant 5 colonnes (en fait il me découpe juste la colonne du premier fichier en plusieur morceau et en fait 5 colonnes).
    Je lui ai dont demandé de me lire tous les fichiers dans le dossier et de rééecrire dans des nouveau fichier que le programme crée, mais là il tout se passe bien tant que j'ai moins de 1021 fichier. Au delà il ne me les convertit pas tous, il n'en fait que 1021.
    Je ne vois pas trop d'ou peut venir le soucis, est ce que ça peut etre un probleme de stockage de variable?
    Je peux envoyer le code si jamais.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Sans plus d'info, je dirais que :

    1021 = 1024 - 3, 3 comme stdin + stdout + stderr

    Ne serait-ce pas (1024) le nombre maximum de fichiers simultanément ouverts pour un processus sous l'os sous-jacent ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    Voila le code qui me permet d'ouvrir tous mes fichier:

    i
    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
    mport os
    i=0
    dir_content = os.listdir(os.curdir)
    obj_list = []
    errors=0
    for file in dir_content :
    	i+=1
    	try :
    		datafile = open(file,'r')
    		obj_list.append(datafile)
     
    print datafile
    print obj_list
        except IOError :
            #dir_content.remove(file)
            errors += 1

    le problème c'est que dès qu'il depasse l'ouvertur de 1021 fichier il increment errors.
    Je ne sais pas comment verifier si ça vient du nombre max qu'il peut ouvrir.

  4. #4
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Ferme, dans la boucle, le fichier "datafile" quand tu ne t'en sers plus (après le "print datafile" par exemple)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    oui mais si mon j'ai
    datafile = open('file', 'r')
    comment je peux le fermer ensuite vu que je stock juste la valeur?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    En fait je peux pas le ferme parce que la suite de mon code doit lire les lignes.
    Mais c'est vrai que si je le ferme il n'incremente pas les erreurs et me fait une liste avec tous les objets ouverts.

  7. #7
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Dans ton code, c'est vrai que tu stockes chacun des fichiers dans obj_list (je n'avais pas vu mais, sans balise CODE que je t'invite à utiliser, ce n'est pas très lisible ...). Après, je ne sais pas ce que tu en fais et si tu en as encore besoin

    mais, de toute façon, si 1024 est bien le nombre de fichiers max que tu peux ouvrir simultanément sur ton système, comme je le soupçonne, il faudra bien que tu te débrouilles pour faire avec (en Python ou dans un autre langage d'ailleurs)

    en lançant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    count, liste = 1, list()
    while True:
        try:
            liste.append(open('/tmp/fichier%d' % count,'w'))
            count += 1
        exception:
            print "ca plante pour count", count
            break
    tu verras bien si le problème vient de là
    (attention, sous Unix/Linux, ça te crée "quelques" fichiers sous /tmp qu'il faut détruire ensuite)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    C'est bon j'ai réussi à contourner le probleme, je le fais travailler sur mon fichier avant de le fermè et il n'y a plus de soucis.
    Merci beaucoup!!

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

Discussions similaires

  1. [VB6] lecture et écriture de fichier
    Par robert_trudel dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 12/06/2006, 14h06
  2. Réponses: 2
    Dernier message: 29/05/2006, 09h54
  3. [VB.NET]Problème de lecture et écriture sur fichier texte
    Par zouhib dans le forum Windows Forms
    Réponses: 25
    Dernier message: 23/05/2006, 15h30
  4. Readdir et écriture de fichiers
    Par Soum dans le forum C
    Réponses: 6
    Dernier message: 09/01/2006, 16h36
  5. Réponses: 2
    Dernier message: 15/11/2005, 09h58

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