Using Python to Fetch Files from an FTP Server


ftp = ftplib.FTP('ftp.novell.com', 'anonymous', \                  'bwdayley@novell.com') gFile = open("readme.txt", "wb") ftp.retrbinary('RETR Readme', gFile.write) gFile.close() ftp.quit()

A common and extremely useful function of Python scripts is to retrieve files to be processed using the FTP protocol. The ftplib module included in Python allows you to use Python scripts to quickly attach to an FTP server, locate files, and then download them to be processed locally.

To open a connection to the FTP server, create an FTP server object using the ftplib.FTP([host [, user [, passwd]]]) method.

Once the connection to the server is opened, the methods in the ftplib module provide most of the FTP functionality to navigate the directory structure, manage files and directories, and, of course, download files.

The example shows connecting to an FTP server, listing the files and directories in the FTP server root directory using the dir() method, and then changing the directory using the cwd(path) method. In the example, the contents of the file Readme are downloaded from the FTP server and written to the local file readme.txt using the retrbinary(command, callback [, blocksize [, reset]]) method.

After you are finished downloading/managing the files on the FTP server, use the quit() method to close the connection.

import ftplib #Open ftp connection ftp = ftplib.FTP('ftp.novell.com', 'anonymous', 'bwdayley@novell.com') #List the files in the current directory print "File List:" files = ftp.dir() print files #Get the readme file ftp.cwd("/pub") gFile = open("readme.txt", "wb") ftp.retrbinary('RETR Readme', gFile.write) gFile.close() ftp.quit() #Print the readme file contents print "\nReadme File Output:" gFile = open("readme.txt", "r") buff = gFile.read() print buff gFile.close()


ftp_client.py

File List: -rw-r-r- 1 root root  720 Dec 15  2005 README.html -rw-r-r- 1 root root  1406 Dec 15  2005 Readme drwxrwxrwx 2 root root  53248 Jun 26 18:10 incoming drwxrwxrwx 2 root root  16384 Jun 26 17:53 outgoing drwxr-xr-x 3 root root  4096 May 12 16:12 partners drwxr-xr-x 2 root root  4096 Apr  4 18:24 priv drwxr-xr-x 4 root root  4096 May 25 22:20 pub None Readme File Output: ************************************************  Before you download any software product you must  read and agree to the following: . . .


Output from ftp_client.py code



Python Phrasebook(c) Essential Code and Commands
Python Phrasebook
ISBN: 0672329107
EAN: 2147483647
Year: N/A
Pages: 138
Authors: Brad Dayley

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net