On 2007-01-05 16:10, [EMAIL PROTECTED] wrote: > alex wrote: >> My script is trying to get a file from a remote server, every day it >> ftps from a directory. My code works perfect if I know the name of the >> file in the remote directory. >> >> ftp.retrbinary('RETR ' + filename, handleDownload) >> >> The problem is that in the future the name of the file is going to be >> aleatory. How can I get the file's name (only one file is in that >> directory) and store it in a variable before executing ftp.retrbinary? >> >> Thanks a lot for your help, >> > You can use the nlst(dirname) method to retrieve a directory listing on > the remote server. If the remote server doesn't support NLST command > rhen you could do ftp.retrlines('LIST') and parse the results to get a > directory listing.
ftputil ( http://ftputil.sschwarzer.net/ ) could help with this parsing. A session may look like >>> import ftputil >>> host = ftputil.FTPHost("ftp.domain.com", "user", "password") >>> file_names = host.listdir(host.curdir) >>> file_names ['wanted_filename'] >>> file_name = file_names[0] >>> host.download(file_name, file_name, "b") >>> host.close() Ok, I admit this isn't a pure-ftplib solution. :-) Stefan -- Dr.-Ing. Stefan Schwarzer SSchwarzer.com - Softwareentwicklung für Technik und Wissenschaft http://sschwarzer.com -- http://mail.python.org/mailman/listinfo/python-list