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 :

Lister fichiers par FTP pour les stocker dans une Listview idem explorateur Windows [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut Lister fichiers par FTP pour les stocker dans une Listview idem explorateur Windows
    Bonjour,

    depuis quelques temps je galère pour récupérer des fichiers d'un serveur par ftp.

    Je souhaite récupérer les fichiers contenu dans un dossier (avec des filtres bien sûr) pour les mettre dans une ListView avec un style explorateur Windows (Nom | Modifié le | Type | Taille).

    J'ai essayé les fonctions ftp.dir(), ftp.nlst(), etc... mais chacune me pose soucis à un certains stade...

    Ci-joint mon code, merci par avance pour votre aide.

    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
     
    def FTP_GET_FilesIntoFolder(self, event):
            try:
                index = self.Cell_listbox.curselection()[0]
                Cell_folder = self.Cell_listbox.get(index)
     
                for i in self.tree.get_children():
                    self.tree.delete(i)
     
                FTP_PARAMETERS              = CFG_FILE.get('NETWORK_PARAMETERS', SELECTED_LINE)
                SERVER_NAME, PORT, FTP_PATH = FTP_PARAMETERS.split(";")
                ftp                         = ftplib.FTP()
                ftp.connect(SERVER_NAME, int(PORT))
                ftp.login(FTP_USER, FTP_PASSWORD)
     
                QUELLE METHODE?
     
                #MyList                      = ftp.nlst(FTP_PATH+Cell_folder)
                #MyList                      = ftp.dir(FTP_PATH+Cell_folder)
     
                iFile                       = 0
                FilteredFiles               = []
     
                for file in MyList:
                    if file.split('.')[-1]=='txt':
                        continue
                    elif file.split('.')[-1]=='io':
                        continue
                    else:
                        FilteredFiles.append(file)
     
                        self.tree.insert('', 'end', text=file, values=('date', 'time'))
     
                        iFile+=1
                    print(file)
                #if iFile==1:
                    #print('One file found')            
                #elif iFile>1:
                    #print(iFile, 'files found')
                #else:
                    #print('No file found')
     
                return True
            except Exception:
                return False

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    La question serait plutôt de savoir comment récupérer via FTP des attributs tels que date de modification, taille de vos fichiers, ... Et le titre de votre message "Lister fichiers par FTP pour les stocker dans une Listview idem explorateur Windows" n'a qu'un rapport lointain avec le problème que vous cherchez à résoudre.
    D'autant que votre serveur FTP sait peut être retourner ces informations sous certaines conditions pour autant qu'il implémente les commandes FTP qui vont bien. Ce qui veut dire qu'il faut déjà vérifier son comportement avec un client FTP standard avant d'essayer d'automatiser cela par programme.
    Ce qui devrait déjà vous donner quelques pistes et mots clefs pour faire des recherches sur Internet pour trouver de la documentation, des exemples et arriver à écrire un premier code plus ou moins fonctionnel.
    En tous cas, c'est un travail préalable que pas grand monde fera à votre place (puisqu'on ne connaît même pas le serveur ni sa configuration).

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

  3. #3
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut
    Je suis bien d'accord, mais le problème est que je n'ai absolument pas accès aux configuration des serveurs, d'autant plus que la personne qui s'en occupe a fait ça comme un 'cochon', ports configurés en 21 ou 22 etc... (la critique est facile je vous l'accorde).

    Je veux retranscrire une application déjà développé sous AutoIt en python.

    Sous AutoIt je n'ai eu absolument aucun soucis pour récupérer les fichiers avec leurs attributs. Mais c'est plus difficile avec Python...

    Ci on regarde mon code, la fonction ftp.dir(FTP_PATH+Cell_folder) correspondrait le plus à mes attentes avec un resultat comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    08-13-18  12:59PM                 6112 5b71804e_0_57081_NOK.1
    08-13-18  12:59PM                 1651 5b71804e_ProcessLog_0.txt
    08-13-18  01:55PM                 6099 5b718d98_0_57082_NOK.1
    08-13-18  01:55PM                 1651 5b718d98_ProcessLog_0.txt
    08-16-18  12:13PM                 7871 5b756a03_0_4540_NOK.1
    08-16-18  12:13PM                 2349 5b756a03_ProcessLog_0.txt
    08-20-18  09:58AM                 6216 5b7a8fe7_0_11190_NOK.1
    Maintenant comment mettre l'heure au format français dans un premier temps?

    Merci

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Supernatural Voir le message
    Maintenant comment mettre l'heure au format français dans un premier temps?
    Si vous ne pouvez rien faire côté serveur, vous pouvez découper la chaîne de caractères pour récupérer les champs intéressants et les présenter sous un autre format. Si vous trouvez cela trop laborieux, il faut (apprendre à) utiliser les fonctions strftime et strptime du module datetime.

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

  5. #5
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut
    Merci, je vais regarder ça

  6. #6
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut
    Du coup je me retrouve le bec dans l'eau avec la fonction ftp.dir() car elle me renvoie None, je ne peux pas la stocker dans un array pour la retravailler.... comment faire?

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

Discussions similaires

  1. [Python 3.X] Lire un fichier pour les stocker dans un tableau multidimensionel
    Par Supernatural dans le forum Général Python
    Réponses: 11
    Dernier message: 20/11/2018, 13h30
  2. Réponses: 3
    Dernier message: 19/04/2017, 17h36
  3. récupération des données pour les afficher dans une ListView
    Par khoukha1 dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 14/06/2012, 14h59
  4. Réponses: 4
    Dernier message: 08/04/2011, 09h44
  5. Réponses: 0
    Dernier message: 02/04/2011, 12h57

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