剛才一哥們說要定時往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"
本文出自 “王偉” 部落格,請務必保留此出處http://wangwei007.blog.51cto.com/68019/983638