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 :

insérer nom utilisateur windows dans code python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 5
    Par défaut insérer nom utilisateur windows dans code python
    bonjour

    je suis débutant en python et je souhaite poursuivre cette étape (https://www.developpez.net/forums/d5...ssion-windows/)
    je souhaiterai copier le nom de l'utilisateur dans mon lien afin qu'un fichier puisse s'enregistrer sur le bureau :

    c'est à dire insérer à la place du nom de l'utilisateur TEST => la fonction +os.getlogin()


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import os 
    
    save_folder = "C:\\Users\TEST\Desktop\\"

    merci pour l'éclairage

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par shaunill Voir le message
    merci pour l'éclairage
    Soit vous débutez et vous allez regarder les chapitres de votre tuto. préféré qui parlent des chaines de caractères, et vous essayez de coder quelque chose (et vous aurez quelque chose à montrer) soit vous voulez qu'on code à votre place parce que vous ne voulez pas prendre le temps de débuter.

    Ceci dit, le nom de l'utilisateur (ce que retourne os.environ['USERNAME']) n'est pas toujours utilisé pour fabriquer son répertoire principal (os.path.expanduser('~') ou Path.home())... Ce qui simplifie quelque peu votre problème de départ.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 5
    Par défaut
    vous avez raison, mais je vais finir par trouver

    déja je chauffe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    current_user = os.getlogin()
    save_folder = "C:\\Users\{current_user}\Desktop\\".format(current_user=current_user)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Reste à indiquer que votre problème est
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    os.getlogin() ne fonctionnera pas toujours.
    Il est recommandé d'utiliser getpass.getuser() plutôt.
    Mais il y a des différences d'implémentation entre les deux, et il existe encore d'autres méthodes, dont l'implémentation peut d'ailleurs varier d'un OS à un autre...
    C'est le genre d'endroit où je mettrais une gestion d'exception: si la valeur retournée est nulle ou vide, alors je déclencherais une exception pour attirer l'attention sur un problème potentiel.

    Sous Linux, on peut utiliser le tilde (~) pour faire référence au home directory de l'utilisateur, je ne sais pas ce que ça donnerait sous Windows. A noter que sous Linux, il n'y a pas forcément de home directory pour chaque utilisateur puisque certains sont des comptes liés à des services.

    Bref, on est typiquement dans un domaine où on doit s'attendre à des différences d'implémentation selon l'OS, et donc des problèmes de portabilité éventuels, dont il faut être conscient si on veut faire du multi-plateforme.
    On pourrait aussi utiliser un fichier de conf, ou demander à l'utilisateur où il veut sauver les fichiers. C'est plus convivial dans un sens.

  6. #6
    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

    Citation Envoyé par binarygirl Voir le message
    Sous Linux, on peut utiliser le tilde (~) pour faire référence au home directory de l'utilisateur, je ne sais pas ce que ça donnerait sous Windows.
    Pour avoir le nom de l'utilisateur (sous Windows, ça fonctionne aussi très bien):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import os
    user = os.path.basename(os.path.expanduser('~'))

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Pour avoir le nom de l'utilisateur (sous Windows, ça fonctionne aussi très bien)
    Il n'y a pas de lien entre nom de l'utilisateur et home directory, c'est une association par défaut (qui peut avoir été changée pour l'utilisateur X).
    => on ne peut pas dériver le home directory depuis le nom utilisateur et vice versa.

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

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 5
    Par défaut
    bonjour


    merci pour vos échanges
    malheureusement cela ne semble pas fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os
    user = getpass.getuser()
    save_folder = "C:\\Users\{}\Desktop\\".format(user)
    cela n'affiche rien

  9. #9
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    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 827
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par binarygirl Voir le message
    Sous Linux, on peut utiliser le tilde (~) pour faire référence au home directory de l'utilisateur, je ne sais pas ce que ça donnerait sous Windows.
    Ca fonctionne aussi (j'avais déjà testé pour mes codes qui doivent fonctionner sous Windows). Mais pathlib a quand-même bien simplifié tout ça.

    Citation Envoyé par binarygirl Voir le message
    A noter que sous Linux, il n'y a pas forcément de home directory pour chaque utilisateur puisque certains sont des comptes liés à des services.
    En fait le champ n° 6 de /etc/passwd est toujours rempli donc fatalement tout user (même virtuel) possède un home (ne serait-ce que pour que le service puisse utiliser "$HOME" sans échouer).
    Ensuite effectivement certains logins ne sont pas accessibles via la connection traditionnelle. Donc le fait que le user "sys" soit connecté à "/dev" ne veut pas dire que "/dev" soit son home. En fait tout dépend de la signification que l'on donne à la notion de "home directory" (veut-on parler d'un dossier qui appartient au user dans lequel il peut faire ce qu'il veut ou d'un dossier simplement associé au user permettant aux processus du user d'avoir un dossier de référence)...

    Citation Envoyé par shaunill Voir le message
    cela n'affiche rien
    Peut-être que pour que cela affiche quelque chose il faudrait que tu demandes explicitement à afficher quelque chose... via la fonction print() peut-être...

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import pathlib
    save_folder=pathlib.Path.home() / "Desktop"
    print(save_folder)
    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]

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par shaunill Voir le message
    cela n'affiche rien
    Si vous ne connaissez pas "print", vous avez des tas de choses à apprendre avant de risquer de polluer l'espace disque.
    note: regardez le temps mis pour faire ce pas grand chose...

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

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si vous ne connaissez pas "print", vous avez des tas de choses à apprendre avant de risquer de polluer l'espace disque.
    note: regardez le temps mis pour faire ce pas grand chose...

    - W
    merci mais pour l'instant c'est vous qui polluez mon topic par vos commentaires.

    Le script est utilisé dans un jeu et il s'agissait de remplacer le chemin d'écriture d'un fichier par le nom de l'utilisateur afin que ce script fonctionne sur tous les PC des utilisateurs,
    sans qu'ils aient besoin d'éditer le script en lui même.
    donc le print ne me servira à rien, comme votre commentaire en fait.

    On va le laisser écrire sur C: et pas sur le bureau, puisque celui ci demande le nom de l'utilisateur pour pour pouvoir le faire.

    je vous laisse clôturer le sujet

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par shaunill Voir le message
    donc le print ne me servira à rien, comme votre commentaire en fait.
    Le "print" permet juste de vérifier que la chaine de caractères construite ressemble bien à ce qu'on attend. Il est clair que ce n'est peut être pas utile dans le code "final" mais avant de finaliser quoi que ce soit, il y a une étape de mise au point (ou le print joue son rôle).

    Citation Envoyé par shaunill Voir le message
    merci mais pour l'instant c'est vous qui polluez mon topic par vos commentaires.
    Vous polluer le forum avec des questions qui montrent que vous n'avez aucune envie d'apprendre à programmer mais juste qu'on vous débrouille un truc.

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

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 5
    Par défaut
    je me suis enervé pour rien, vous avez raison
    merci pour votre aide à tous

  14. #14
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    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 827
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par shaunill Voir le message
    Citation Envoyé par shaunill Voir le message
    cela n'affiche rien
    donc le print ne me servira à rien
    Ben sais pas. C'est toi qui voulait afficher quelque chose...
    Nous on répond juste à tes questions...
    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]

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

Discussions similaires

  1. [AC-2007] Récupérer nom de l'utilisateur windows dans une requête SQL
    Par Dallemg dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/02/2015, 16h04
  2. Insérer nom de tables dans combobox
    Par pilipi dans le forum Windows Forms
    Réponses: 0
    Dernier message: 14/04/2009, 17h54
  3. Réponses: 1
    Dernier message: 01/02/2008, 18h21
  4. Connaître le nom utilisateur Windows grâce au process SQL
    Par fkuchta dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/08/2006, 14h14
  5. Nom utilisateur windows
    Par yosthegost dans le forum Delphi
    Réponses: 3
    Dernier message: 15/06/2006, 15h34

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