How to get file name on a remote server with ftplib?
sschwarzer at sschwarzer.net
Sat Jan 6 02:38:15 CET 2007
On 2007-01-05 16:10, wittempj at hotmail.com 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_name = file_names
>>> host.download(file_name, file_name, "b")
Ok, I admit this isn't a pure-ftplib solution. :-)
Dr.-Ing. Stefan Schwarzer
SSchwarzer.com - Softwareentwicklung für Technik und Wissenschaft
More information about the Python-list