Bonjour

Toute nouvelle sur ce site, merci d'avance pour vos réponses et votre patience!

Alors, j'ai mon script (qui après mainte tentatives, fonctionne !) qui importe les fichiers d'un dossier via ftp, fais quelques modifications et les déplace dans un nouveau dossier :

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
 
# Connexion ssh au serveur
 
import sys
sys.path.append('/users/led/sblind/lib/python')
# nouveau chemin pour que python trouver paramiko
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('***',username='***',password='***')
ftp = ssh.open_sftp()
import ftplib
ftp = ftplib.FTP('***')
ftp.login('***','***')
 
import os
os.mkdir('/users/led/sblind/fichier_dialogue_corrige')
import shutil
rep = '/emospeech/data/dialogues/dialsMidikiTest'
# repertoire du serveur à transferer
ext = '*.txt'
# extraire tous les fichiers texte
ftp.cwd(rep)
# changer le repertoire commun
for fichier in ftp.nlst(ext):
    # demande au serveur d'envoyer le contenu du dossier
    f = open(fichier,'wb')
    ftp.retrbinary('RETR ' + fichier, f.write)
    # tranfert
    shutil.move(fichier,'/users/led/sblind/fichier_dialogue_corrige')
    # déplace les fichiers dans un dossier
    f.close()
Jusque là pas de problème. Mais maintenant je veux faire un peu plus compliqué.
Dans mon dossier - ici 'dialogues' se trouve plein de dossiers ayant eux même plein de sous dossiers.

C a d -> terminal :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
emospeech@labotalc2:~/emospeech/data/dialogues$ ls
dialsApr212011  dialsMidikiGabrielle25052011  dialsMidikiTest
dialsMay122011  dialsMidikiGabrielle26052011  experiments
J'aimerais récupérer tous les fichiers textes de TOUS mes dossiers contenu dans 'dialogues'...

J'en suis là :

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
 
import sys
sys.path.append('/users/led/sblind/lib/python')
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('***',username='***',password='***')
ftp = ssh.open_sftp()
import ftplib
ftp = ftplib.FTP('***')
ftp.login('***','***')
'230 Welcome on ***'
 
rep = '/emospeech/data/dialogues'
ext ='*.txt'
 
def download(rep):
    ftp.cwd(rep)
    ext = '*.txt'
    for fichier in ftp.nlst(ext):
        f = open(fichier, 'wb')
        ftp.retrbinary('RETR ' + fichier, f.write)
        f.close()
    down_dir()
 
def down_dir():
    for directory in ftp.nlst():
        if ftp.cwd(directory):
            download(directory)    
 
import ftplib
try:
    download(ftp.pwd())
except Exception, error:
    print str(error)
donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
450 No files found
Rien...

Si quelqu'un a une idée, merci !