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 :

[Python3.x] Lire un fichier par ftp


Sujet :

Python

  1. #21
    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,

    Si ton serveur ne supporte pas qu'une lecture dure plus de 2 mn, peut-être peux-tu revenir à la solution que je t'ai proposée avant avec io.BytesIO pour retrouver tout ton fichier en mémoire RAM, et pouvoir en reprendre chaque ligne pour traitement?

    Ceci, bien sûr, si la taille du fichier reste compatible avec la taille mémoire RAM de ton PC. Si ce n'est pas le cas, le téléchargement sur disque parait inévitable...

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 481
    Par défaut
    J'utilise ta fonction justement...
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #Here opening of selected file in ListView
        def FTP_OpenSelectedFile(self, event):
            curItem = self.tree.focus()
     
            LOCAL_FILE = BytesIO()
            ftp.set_debuglevel(2)
            ftp.retrbinary('RETR ' + self.tree.item(curItem)['values'][2], LOCAL_FILE.write)
     
            TEXT = str(LOCAL_FILE.getvalue(), encoding='utf-8')
            FILE_CONTENT = []
            iLine = 0
            for LINE in TEXT.splitlines():
                #print(LINE)
                FILE_CONTENT.append(LINE.replace("'", "").strip())
                iLine+=1
     
            # ferme le fichier virtuel
            LOCAL_FILE.close()
     
            #Search of the empty line--------------------
            COUNT_LINE_BEFORE_EMPTY=0
            #print(iLine)
     
            for READ_ROW in FILE_CONTENT:
                if READ_ROW.strip() != "" :
                    COUNT_LINE_BEFORE_EMPTY+=1
                else:
                    break
     
            #Search of the mm;kN line--------------------
            STANDARD_CURVE_INDEX = []
            CALIBRATION_CURVE    = []
            START_OF_DATA_CURVE  = 1
     
            for READ_ROW in FILE_CONTENT:
                if READ_ROW.strip() != "mm;kN":
                    START_OF_DATA_CURVE+=1
                elif READ_ROW.strip() != "mm;kN;kN":
                    START_OF_DATA_CURVE+=1
                else:
                    break
     
            print(START_OF_DATA_CURVE)
     
            #print(COUNT_LINE_BEFORE_EMPTY)
            #End of search-------------------------------
     
            #Get Header of curve file
            #Character remplacement----------------------
            a=0
            while a <= COUNT_LINE_BEFORE_EMPTY:
                print(FILE_CONTENT[a].replace(";", ""))
     
                a+=1
     
            #Do not delete below:
            #Character substitution
     
            DATA_CURVE = []
     
            #print(COUNT_LINE_BEFORE_EMPTY)
            #print(iLine)
            for i in range(COUNT_LINE_BEFORE_EMPTY, iLine):
                print(FILE_CONTENT[i])

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 481
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Si ton serveur ne supporte pas qu'une lecture dure plus de 2 mn...
    J'ai la même application qui tourne (développée sous AutoIt) et je n'ai pas se soucis...

    C'est pour ça que je pense plus à un problème de code qu'autre chose...

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 481
    Par défaut
    Je pense que j'ai résolu mon problème de timeout. Un problème de codage car je ne fermais pas ma connexion ftp...

    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [FTP] Télécharger un fichier par FTP
    Par jerome38000 dans le forum Langage
    Réponses: 5
    Dernier message: 27/05/2011, 16h41
  2. [Upload] upload de fichier par ftp
    Par sami_c dans le forum Langage
    Réponses: 3
    Dernier message: 22/03/2006, 12h18
  3. Transfert fichier par FTP
    Par j_bolduc dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 20h59
  4. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 18h53
  5. Réponses: 1
    Dernier message: 19/08/2003, 17h11

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