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 :

Le python, le brut et le binaire :


Sujet :

Python

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut Le python, le brut et le binaire :
    Le titre en dit un peu je pense sur mon problème (non ?!)

    Bien je m'explique

    J'ai créer un programme qui upload et download des fichiers sur le réseau.

    Quelques tests avec des fichiers textes sympas et ça marche à merveille
    Mais quand il s'agit des binaires c'est la cata grave (exécutable, images ...)

    PS : Je suis sous linux, je pense que le système de fichier a à faire la dedans
    PS2 : J'utilise (pour la lecture, ecriture) file (filename, mode + "b") \ mode = "w" ou "r"

    merci d'avance

  2. #2
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Salut

    Citation Envoyé par Unnamed_ Voir le message
    J'ai créer un programme qui upload et download des fichiers sur le réseau.
    Avec quel protocole ? Si c'est du ftp, il faut passer en mode binaire pour les fichiers... binaires.

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour Unnamed_,

    Comme le dit Antoine_935 un zest de précision ne serait pas de trop.

    Utlise tu un protocole (un module) particulier ?
    Vu ton PS2 cela ressemble à de la lecture/écriture sur un partage (samba/nfs ?). Vrais ?

    Pour ton 'cata grave' tu parle d'une erreur EOF ou de synthaxe ? (je pense à binascii pour corriger cela).

    @+

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    J'ai fait cela il y a a 3 ans;
    Code python : 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
    def renvoie ():
     
        command='c:/wamp/mysql/bin/mysqldump.exe -u root --opt  -h localhost -r backup-gsc1.sql gsc1 '
     
        fout=open("cmd.out","w")
     
        ferr=open("cmd.err","w")
     
        subprocess.Popen(command,stdout=fout,stderr=ferr,shell=False)
     
        fout.close()
     
        ferr.close()
     
        initftp()
     
        session = ftplib.FTP(hostftp,userftp,passftp)
     
        if not session:
     
            wx.MessageBox("Connexion FTP impossible","ALERTE",wx.OK)
     
            return False
     
        try:
     
            toupload = open('backup-gsc1.sql','rb')                         # On ouvre le fichier à envoyer
     
            session.storbinary('STOR backup-gsc1.sql', toupload)            # On envoie le fichier
     
            toupload.close()                                         # On ferme le fichier
     
            #session.retrlines('LIST')
     
            session.delete('backup-gsc1.sav')
     
            session.delete('token.txt')
     
            session.quit()
     
        except:
     
            wx.MessageBox("Erreur de téléchargement","ALERTE",wx.OK)
     
            return False
     
        return True
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

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

    avec, dans le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        session.storbinary('STOR backup-gsc1.sql', toupload)            # On envoie le fichier
    les transferts se font via FTP en mode binaire...

    Mais, on peut supposer que ce n'est pas avec les dumps MySQL que vous avez un problème car si mes souvenirs sont bons, ce sont des fichiers textes.
    En tout cas, çà marche depuis 3 ans...

    Montrez nous ce qui ne marche pas!
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut
    la cata c'est que parfois le programme m'affiche que le fichier a bien été reçu mais quand je vérifie c'est soit le fichier est corrompu ou il n'y aucun fichier du tout.

    j'utilise les sockets du module socket (recv et send)

    Je n'utilisais pas du ftp mais maintenant que vous m'en parlez c'est pas bête comme soluce, il me reste un problème
    Comme j'utilise une reverse connexion le client n'est pas chez moi
    donc la question qui se pose :
    [??] Comment faire pour qu'un client devienne un serveur (le temps d'un transfert de fichier) ??

    merci

  7. #7
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Il faut que le client ouvre un nouveau socket et en fasse un serveur. Il peut ensuite transmettre au « vrai » serveur le port sur lequel il a ouvert le socket. Le « vrai » serveur pourra alors s'y connecter.
    Je crois que c'est à peu près comme cela que fonctionne le mode passif du protocole ftp.

    Cela dit, il n'y a pas forcément besoin de faire cela, le « vrai » serveur peut tout simplement envoyer le fichier via le socket déjà ouvert.

  8. #8
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut
    Justement j'ai essayé de l'envoyer sur le socket ouvert en local et ça marche sur les fichier textes bruts mais ça ne fonctionne plus quand il s'agit d'images ...

    ça m'affiche que le fichier est reçu mais comme dit précédemment ce dernier est soit incomplet ou corrompu

    passer par le ftp me semble plus sûr que mes fonctions de transfert

  9. #9
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Par défaut
    Je viens de faire des tests
    Le problème ne vient pas du programme mais de la plateforme (apparemment)
    sous windows ça fonctionne nickel
    mais sous linux ça foire plus ou moins en beauté avec les fichiers binaires
    quelle peut être la cause ??

Discussions similaires

  1. calcul binaire en python
    Par tasnim86 dans le forum Général Python
    Réponses: 4
    Dernier message: 21/10/2013, 20h06
  2. image binaire:convex hull en python
    Par jean-pat dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 03/05/2011, 13h31
  3. [SWIG] Module I/O binaire C++ pour python
    Par Remy_F dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 18/04/2011, 16h26
  4. Accès à des fichiers binaires en Python
    Par dapounet dans le forum Général Python
    Réponses: 5
    Dernier message: 01/04/2009, 22h08
  5. Comment representer un arbre (binaire ou non) en python?
    Par MadCat34 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/03/2006, 16h25

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