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

Réseau/Web Python Discussion :

comment utiliser le module ftp pour telecharger un .tgz?


Sujet :

Réseau/Web Python

  1. #1
    Membre régulier Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 95
    Points
    95
    Par défaut comment utiliser le module ftp pour telecharger un .tgz?
    bonjour à tous,

    J'essaye de telecharger des fichiers sur un serveur ftp qui contient des .fna (texte) et/ou des .fna.tgz.
    Mon code se connecte , et telecharge les fichiers .fna sans probleme mais pas les .fna.tgz ...

    Voici ce que je fais :

    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
    import fnmatch
    from fnmatch import fnmatch
    import ftplib
    from ftplib import *
    ftp = FTP('ftp.ncbi.nih.gov') 
    ftp.login()
    rlist=ftp.nlst('genomes/HUMAN_MICROBIOM/Bacteria/Staphylococcus_aureus_USA300_TCH959/' )
    print rlist
    for f in rlist :
        f, type(f)
        p = 'RETR ' + f
        if fnmatch(f, "*.fna"):
            tt = "toto_" + f[-13:-4] + "_fna"
            tt # affiche par exemple  'toto_NC_010066_fna'
            toto_fna = open(tt,"w")
            ftp.retrbinary(p , toto_fna.write)
            toto_fna.close()
     
    for f in rlist :
        f, type(f)
        p = 'RETR ' + f
        if fnmatch(f, "*.fna.tgz"):
            tt = "toto_" + f[-30:-8] + "_fna_tgz"
            tt # affiche par exxemple  'toto_Z_AASB00000000.contigs_fna_tgz'
            toto_fna_tgz = open(tt, "w")
            ftp.retrbinary(p , toto_fna_tgz.write)
            toto_fna_tgz.close()

    J'ai testé le code en utilisant mon ftp free et j'ai le meme resultat, donc ça ne vient pas du serveur mais de l'extension .tgz...
    Pourtant retrbinary me paraissait assez polyvalent pour s'appliquer aussi aux .tgz..
    Si quelqu'un avait la gentillesse de me depanner , je lui en serait gréé ...
    merci d'avance

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    essaye en utilisant le mode binaire pour ton fichier toto_fna_tgz:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto_fna_tgz = open(tt, "wb")
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Membre régulier Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 95
    Points
    95
    Par défaut
    Merci pour votre reponse

    Bon ,ça yest j'ai compris d'où vient mon erreur !

    il y avait 1 l'archive de 860ko , et 1fichier à l'interieur : 2.9Mo et je ne pouvais pas decompresser :

    Une erreur s'est produite lors de l'extraction des fichiers.

    (null)

    et pareil avec "wb"

    et en fait c'est parce que je n'avais pas mis d'extension .tgz à mon fichier toto. On m'avait dit de ne pas en mettre pour le traiter comme fichier binaire ...
    Grave erreur ... lol
    Avec .tgz l'archive est composée de plusieurs fichiers à l'interieur et se decompresse normalement


    MERCI POUR LE COUP DE MAIN !!!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2006, 17h15
  2. Réponses: 1
    Dernier message: 21/02/2006, 17h13
  3. Comment utiliser la meme table pour plusieurs formulaires
    Par pacodelareunion dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2005, 15h17
  4. Comment utiliser une icône personnalisée pour un composant ?
    Par Bruno75 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/09/2005, 17h24

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