剛才一哥們說要定時往FTP上上傳或者下載一些檔案,讓我寫一個上傳下載的函式,發現很簡單的,python本身自帶一個FTP模組,可以實現這些:
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- from ftplib import FTP
- def ftp_up(filename = "20120904.rar"):
- ftp=FTP()
- ftp.set_debuglevel(2)#開啟除錯級別2,顯示詳細資訊;0為關閉除錯資訊
- ftp.connect(`192.168.0.1`,`21`)#連線
- ftp.login(`admin`,`admin`)#登入,如果匿名登入則用空串代替即可
- #print ftp.getwelcome()#顯示ftp伺服器歡迎資訊
- #ftp.cwd(`xxx/xxx/`) #選擇操作目錄
- bufsize = 1024#設定緩衝塊大小
- file_handler = open(filename,`rb`)#以讀模式在本地開啟檔案
- ftp.storbinary(`STOR %s` % os.path.basename(filename),file_handler,bufsize)#上傳檔案
- ftp.set_debuglevel(0)
- file_handler.close()
- ftp.quit()
- print "ftp up OK"
- def ftp_down(filename = "20120904.rar"):
- ftp=FTP()
- ftp.set_debuglevel(2)
- ftp.connect(`192.168.0.1`,`21`)
- ftp.login(`admin`,`admin`)
- #print ftp.getwelcome()#顯示ftp伺服器歡迎資訊
- #ftp.cwd(`xxx/xxx/`) #選擇操作目錄
- bufsize = 1024
- filename = "20120904.rar"
- file_handler = open(filename,`wb`).write #以寫模式在本地開啟檔案
- ftp.retrbinary(`RETR %s` % os.path.basename(filename),file_handler,bufsize)#接收伺服器上檔案並寫入本地檔案
- ftp.set_debuglevel(0)
- file_handler.close()
- ftp.quit()
- print "ftp down OK"