一個簡單python ftp客戶端代碼

mxw8 9年前發布 | 2K 次閱讀 Python

#!/usr/bin/python

-- coding: utf-8 --

import ftplib import os import socket

HOST = 'ftp.mozilla.org' DIRN = 'pub/mozilla.org/webtools' FILE = 'bugzilla-3.6.9-to-3.6.10-nodocs.diff.gz'

def writedata(data): f = open(FILE,'wb') try: f.write(data) finally: f.close()

def main(): try: f = ftplib.FTP(HOST) except (socket.error, socket.gaierror): print 'ERROR:cannot reach " %s"' % HOST return print '***Connected to host "%s"' % HOST

try:
    f.login()
except ftplib.error_perm:
    print 'ERROR: cannot login anonymously'
    f.quit()
    return
print '*** Logged in as "anonymously"'

try:
    f.cwd(DIRN)
except ftplib.error_perm:
    print 'ERRORL cannot CD to "%s"' % DIRN
    f.quit()
    return
print '*** Changed to "%s" folder' % DIRN

try:
    #傳一個回調函數給retrbinary() 它在每接收一個二進制數據時都會被調用
    f.retrbinary('RETR %s' %FILE, writedata)
except ftplib.error_perm:
    print 'ERROR: cannot read file "%s"' %FILE
    os.unlink(FILE)
else:
    print '*** Downloaded "%s" to CWD' % FILE

f.quit()
return

if name == 'main': main()</pre>

 本文由用戶 mxw8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!