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

Octave Discussion :

Lecture de fichier depuis un ftp


Sujet :

Octave

  1. #1
    Candidat au Club
    Lecture de fichier depuis un ftp
    Bonjour, ou plutôt bonsoir !

    M'étant mis depuis peu (très peu en réalité, puisque cela date de ce matin) à Octave dans le cadre d'un petit projet pour mes études, je cherche actuellement à récupérer quelques fichiers météos depuis un ftp. Evidemment, en bon boulet, je n'y arrive pas, et cela fait maintenant quelques heures que je tourne pour essayer de comprendre d'où vient mon problème.

    J'arrive correctement à accéder au FTP, à voir les fichiers, à voir le fichier que je souhaite, mais je n'arrive pas à le sélectionner avec la mget(), Octave m'affichant l'erreur error: __ftp_mget__: file not found. Probablement que je fais une bête erreur sur la syntaxe, mais force est de constater que je ne la trouve pas...

    Je joins l'extrait de code utilisé :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    %% .Tro Download
    rgpFTP = ftp('rgpdata.ign.fr/pub/products/troposphere/hourly_1/2015/328/');
    ascii(rgpFTP);
    dir(rgpFTP);
    mget(rgpFTP,'HCAL_15328A.TRO')


    Je joins également les premières lignes de l'affichage du dossier :
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 14926 100 14926 0 0 73527 0 --:--:-- --:--:-- --:--:-- 73527
    -rw-rw-r-- 1 ftp ftp 271686 Nov 24 01:09 HCAL_15328A.TRO
    -rw-rw-r-- 1 ftp ftp 760278 Nov 24 01:09 HCAL_15328A.TRP
    J'utilise Octave 4.0 sous Windows 8 (je sais, je sais...).

    Si quelqu'un a la réponse à mon problème, il/elle est le/la bienvenu/e !

  2. #2
    Rédacteur/Modérateur

    Le code suivant fonctionne avec MATLAB :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    f = ftp('rgpdata.ign.fr');
     
    cd(f, '/pub/products/troposphere/hourly_1/2015/328');
     
    mget(f,'HCAL_15328A.TRO');
     
    close(f);


    Par contre, il ne fonctionne pas avec Octave 4.0.0

    Pourtant en faisant :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    f = ftp('rgpdata.ign.fr');
     
    cd(f, '/pub/products/troposphere/hourly_1/2015/328/');
     
    dir(f)
     
    close(f);


    Le contenu du dossier est bien listé… Bizarre.
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et Arduino)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Candidat au Club
    Bon, au moins je ne suis pas complètement fou !

    Je testerai ça dès que possible, d'ici là, si quelqu'un a une solution pour Octave 4...

    Merci en tous les cas.

  4. #4
    Rédacteur/Modérateur

    Créé un fichier ftpscript.txt :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    open rgpdata.ign.fr
     
    cd /pub/products/troposphere/hourly_1/2015/328
     
    mget HCAL_15328A.TRO
     
    quit


    Et exécute ceci dans la fenêtre de commandes de Octave :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    dos('ftp -v -n -s:ftpscript.txt -A');


    Tu peux bien entendu modifier le nom et l’extension du fichier script.

    Il ne te reste plus qu'à automatiser l'écriture du fichier script avec Octave
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et Arduino)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Candidat au Club
    Bonjour, merci pour cette réponse.

    Apparemment, il y a toujours un petit souci, je reçois cela en retour :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Ouverture de session anonyme en tant que ***
    ftp> open rgpdata.ign.fr
    ftp>
    Commande non valide.
    ftp> cd /pub/products/troposphere/hourly_1/2015/328
    ftp>
    Commande non valide.
    ftp> mget HCAL_15328A.TRO
    mget HCAL_15328A.TRO?


    Apparement il ne comprend pas la commande cd ?
    Est ce que cela pourrait venir des certificats ?

  6. #6
    Rédacteur/Modérateur

    As-tu essayé d'exécuter les commandes directement dans une console DOS ?

    Tu commences par taper ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ftp


    L'invite de commande se modifie en :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ftp>


    Puis tu exécutes les commandes une par une
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et Arduino)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Candidat au Club
    Désolé pour le délais !

    Donc, je préviens, je ne m'y connais absolument pas en FTP.

    N'est-il pas étrange que cela fonctionne tout de même sous Matlab ?
    Je vais essayer de me renseigner du côté de quelqu'un qui aurait pu faire des scripts utilisant le ftp rgpdata.

  8. #8
    Candidat au Club
    Petite update :

    Donc cela fonctionne parfaitement avec l'invit de commande, et ce depuis le même ordinateur.

    J'ai discuté rapidement avec quelqu'un ayant bossé à l'ign, on m'a dit que cela pourrait provenir d'un mode passif ou actif du ftp ? (encore une fois, je n'y connais pas grand chose malheureusement)