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 :

je comprends pas __main__.__file__


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Par défaut je comprends pas __main__.__file__
    Bonjour
    dans un scripte je trouve le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x= open(__main__.__file__, "r")
    et ils copient x dans une autre variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for line in x:
              destination.write(line)
    j'ai consulter la documentation apropos des dictionnaire globale (__main__ , __file__,ect)mais j'ai pas pus trouver une reponse ,
    alor la variable x contien quoi en lecture?
    et si il ya une bonne documentation apropos des dictionnaire globales mettez mois un lien svp
    merci d'avance

  2. #2
    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
    As-tu tenter d'afficher ce terme à l'aide de la fonction print ?

  3. #3
    Membre très actif Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Par défaut
    je vien d'essayer et ca ma afficher mon code ,alors c'est ca , mais je veux en apprendre plus sur la function par une doc en francais car j'ai bien chercher sur le net mais j'ai rien trouver ,merci de ton aide .

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Merci pour cette discussion. j'ai découvert un nouveau truc. Mais y a-t-il un avantage particulier à utiliser __main__.__file__ plutôt que sys.argv[0] ???

    Citation Envoyé par animalx123 Voir le message
    mais je veux en apprendre plus sur la function par une doc en francais car j'ai bien cherché sur le net mais j'ai rien trouvé
    https://stackoverflow.com/questions/...thon-main-file
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    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
    y a-t-il un avantage particulier à utiliser __main__.__file__ plutôt que sys.argv[0] ???
    Non ! Surtout que le module __main__ n'a pas forcément l'attribut __file__, c'est donc un test préliminaire à ajouter.
    sys.argv[0] peut être une chaîne vide, si par exemple on exécute avec le paramètre -c.

    Note: On peut vérifier les attributs en regardant dans le module __main__

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import sys
     
    print(sys.modules['__main__'].__dict__)
    Une des manières courantes de vérifier proprement et élégamment est d'utiliser getattr et de mettre une valeur None en résultat si on ne trouve pas l'attribut __file__.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    f = getattr(sys.modules['__main__'], '__file__', None)
    if not f:
        # blabla
    Pour conclure, il est rare d'utiliser le paramètre -c, sauf dans le cas où on souhaite exécuter une commande particulière en python rapidement, et donc on sort du sujet de départ, qui est de retrouver le nom du fichier, et plus particulièrement dans ce cas, le contenu du fichier courant.
    sys.argv[0] est donc conseillé à mon humble avis...

  6. #6
    Membre très actif Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Par défaut
    je suis ravis de que ma problematique a aider d'autres gens a se poser d'autres questions et a y voire plus claire ,et merci de votre aide.

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

Discussions similaires

  1. Erreur Objet requis : 'this' --> Comprend pas!!
    Par Grozeil dans le forum ASP
    Réponses: 3
    Dernier message: 30/03/2005, 09h46
  2. [thread][methodologie]Quelque chose que je ne comprends pas!
    Par norkius dans le forum Général Java
    Réponses: 5
    Dernier message: 16/03/2005, 14h01
  3. sql ne comprend pas mon where!et me demande des parametres
    Par marie10 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/04/2004, 11h08
  4. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 21h46

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