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 :

path a espace, variable username


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    geek
    Inscrit en
    Mai 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : geek
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 44
    Par défaut path a espace, variable username
    Bonjour
    j'ai un programme en VBA que je souhaiterai convertir en python

    le programme en question va sur un répertoire qui contient un username et un espace
    et efface le contenu ,sauf bien sur 1 ou plusieurs fichiers=> celui qui est bloqué car je suis en train de le/les lire

    ce que je veux récuperer c'est le chemin complet du PDF en question (s'il n'y en a que 1)
    ou en choisir1 celui que je veux s'il y en a plusieurs

    Code VBA : 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
     Sub pdftxt()
     'suppression des fichiers PDF qui ne sont pas ouvert
     'afin de n'en avoir que 1 pour le selectionner automatiquement
     
    chemin = Environ("userprofile") & "\AppData\Local\SAP\SAP GUI\tmp\"    '<==========temporary path of SAP
     
    Dim Fso, f1 As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    For Each f1 In Fso.GetFolder(chemin).Files
        On Error Resume Next
        Kill chemin & f1.Name
    Next
     
    'fait une liste des fichiers PDF et s'il n'y en a que  on l'ouvre
    'sinon on ouvre la boite de dialogue pour le selectionner
        f = 0
        fichier = Dir(Environ("userprofile") & "\AppData\Local\SAP\SAP GUI\tmp\*.pdf")
        While fichier <> ""
            fderosap = fichier
            f = f + 1
            fichier = Dir
        Wend
     
     
       If f = 1 Then
            Source = Environ("userprofile") & "\AppData\Local\SAP\SAP GUI\tmp\" & fderosap           'si 1 seul fichier on recupere son nom
        Else
            With Application.FileDialog(msoFileDialogFilePicker)                        'sinon on ouvre la boite de dialogue
                .Filters.Clear
                .Title = "Choose the PDF of the concession"
                .ButtonName = "Open for analyse"
                .InitialFileName = Environ("userprofile") & "\AppData\Local\SAP\SAP GUI\tmp\*.pdf"
                .Filters.Add "PDF file", "*.pdf"
                .Show
            Source = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
            End With
        End If
     
        If Source = "" Then Exit Sub  'si aucun fichier n'est sélectionné, on sort de la procédure
     
       MsgBox Source
     
    End Sub


    le but ensuite est de convertir le fichier PDF en TXT, donc dans un premier temps je cherche le chemin complet

  2. #2
    Membre averti
    Homme Profil pro
    geek
    Inscrit en
    Mai 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : geek
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 44
    Par défaut
    j'ai fait cela qui me donnera le dernier fichier PDF (ce qui ira dans 99% des cas

    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
    import os
    import getpass
     
    username = getpass.getuser()
    rootPath= ("c:/Users/")+username+("/AppData/Local/SAP/SAP GUI/tmp")
    pattern = '*.pdf'
     
    files = os.listdir(rootPath)
    for i in range(0, len(files)):
        try:
            os.remove(rootPath + '/' + files[i])
        except:
            pass
     
    files = os.listdir(rootPath)
    for i in range(0, len(files)):
        print (rootPath + '/' + files[i])
    cela vous semble correctement écrit ?

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Plus pythoniquement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for f in os.listdir(rootPath):
        try:
            os.remove(os.path.join(rootPath, f))
    Par contre je ne comprend pas ta démarche, tu effaces tous les fichiers de ce dossier en te disant que ceux que tu veux conserver sont ouverts par une autre application. c'est bien cela ?

  4. #4
    Membre averti
    Homme Profil pro
    geek
    Inscrit en
    Mai 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : geek
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 44
    Par défaut
    c'est ça, je tire sur tout, je discute après

    a vrai dire, dans ce répertoire, se trouve les fichiers qu'on ouvre à partir de SAP..
    et celui dont je souhaite récupérer le chemin, est celui que je suis justement en train de lire , dont il est bloqué

    j'efface tout le répertoire temporaire, et recupère le chemin du seul fichier qui reste


    en VBA j'avais prévu un autre cas de figure
    celui ou on a 2 ou + fichiers d'ouvert
    dans ce cas, j'appellais une boite de dialoque pour choisir le bon

  5. #5
    Membre averti
    Homme Profil pro
    geek
    Inscrit en
    Mai 2017
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : geek
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 44
    Par défaut
    on peut imaginer un autre cas aussi pratique pour moi
    récuperer le chemin complet du PDF qui est actuellement en cours de lecture

    ça en VBA, je ne sais pas faire
    et en plus suivant les PC ou utilisateur, ce ne sera pas forcement le même lecteur PDF

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/08/2013, 13h54
  2. problème commande system et path avec espaces
    Par Benoit_T dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2009, 18h23
  3. [XL 2003] variable username et date dans msgbox
    Par desdenova dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/05/2009, 14h59
  4. Recherche des plus proches voisins dans un espace variable à K dimensions parmis N
    Par JeromeBcx dans le forum Algorithmes et structures de données
    Réponses: 34
    Dernier message: 26/06/2008, 17h46
  5. [Shell] Path tronqué dans variable
    Par bakka dans le forum Linux
    Réponses: 1
    Dernier message: 23/01/2008, 17h06

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