Bonjour,
Je souhaite faire un script Python pour effacer les fichiers d'un FTP datant de plus de xx heures. Ce script serait appelé par une machine (linux ou windows) se connectant au FTP.
Problème: je souhaite connaitre la date et l'heure de dernière modification de chaque fichier et je n'obtiens que la date: l'heure est à zero (alors que bien sûr ce n'est pas le cas).
Si je fais un simple ftplib.dir() j'obtiens l'info (en la filtrant), mais je ne suis pas sûr que le formatage soit systématiquement identique d'un ftp à l'autre.
J'utilise ftputil car dans ftplib je ne suis pas parvenu à faire fonctionner un f.sendcmd("MDTM",liste) (f étant un objet ftp de ftplib). J'ai un retour "unrecognized command".
Avez-vous une idée? Idéalement, je souhaite privilégier ftplib (car rien de nouveau à installer).
Voici mon code actuel (uniquement ce qui concerne l'acces FTP, pour ne pas encombrer). Merci pour votre aide
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 # -*- coding: utf-8 -*- import os,time,ftplib, ftputil liste=[] class ftpparams: host="" user="" passwd="" path="" if __name__ == '__main__': # récupération de l'adresse FTP, login, mot de passe, répertoire base f=open("ftpcredentials.txt","r") ftpparams.host=f.readline().rstrip() ftpparams.user=f.readline().rstrip() ftpparams.passwd=f.readline().rstrip() ftpparams.path=f.readline().rstrip() f.close() #connexion au FTP with ftputil.FTPHost(ftpparams.host,ftpparams.user,ftpparams.passwd) as ftp_host: liste=ftp_host.listdir(ftp_host.curdir) for i in liste: print i+" ", a=ftp_host.lstat(i) print a b=ftp_host.path.getmtime(i) print b t=time.localtime(a.st_mtime) print time.strftime("%Y%m%d%H%M%S",t)
Partager