剛才一哥們說要定時往FTP上上傳或者下載一些檔案,讓我寫一個上傳下載的函式,發現很簡單的,python本身自帶一個FTP模組,可以實現這些:

 

  1. #!/usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3.  
  4. from ftplib import FTP 
  5.  
  6. def ftp_up(filename = "20120904.rar"): 
  7.     ftp=FTP() 
  8.     ftp.set_debuglevel(2)#開啟除錯級別2,顯示詳細資訊;0為關閉除錯資訊 
  9.     ftp.connect(`192.168.0.1`,`21`)#連線 
  10.     ftp.login(`admin`,`admin`)#登入,如果匿名登入則用空串代替即可 
  11.     #print ftp.getwelcome()#顯示ftp伺服器歡迎資訊 
  12.     #ftp.cwd(`xxx/xxx/`) #選擇操作目錄 
  13.     bufsize = 1024#設定緩衝塊大小 
  14.     file_handler = open(filename,`rb`)#以讀模式在本地開啟檔案 
  15.     ftp.storbinary(`STOR %s` % os.path.basename(filename),file_handler,bufsize)#上傳檔案 
  16.     ftp.set_debuglevel(0
  17.     file_handler.close() 
  18.     ftp.quit() 
  19.     print "ftp up OK" 
  20.  
  21. def ftp_down(filename = "20120904.rar"): 
  22.     ftp=FTP() 
  23.     ftp.set_debuglevel(2
  24.     ftp.connect(`192.168.0.1`,`21`
  25.     ftp.login(`admin`,`admin`
  26.     #print ftp.getwelcome()#顯示ftp伺服器歡迎資訊 
  27.     #ftp.cwd(`xxx/xxx/`) #選擇操作目錄 
  28.     bufsize = 1024 
  29.     filename = "20120904.rar" 
  30.     file_handler = open(filename,`wb`).write #以寫模式在本地開啟檔案 
  31.     ftp.retrbinary(`RETR %s` % os.path.basename(filename),file_handler,bufsize)#接收伺服器上檔案並寫入本地檔案 
  32.     ftp.set_debuglevel(0
  33.     file_handler.close() 
  34.     ftp.quit() 
  35.     print "ftp down OK"