Python搭建FTP服務(wù)器的方法示例
Python版本 3.6.2
使用的ftp包:pyftpdlib pip install pyftpdlib就可以下載安裝了
FTP協(xié)議下載上傳文件在文件過(guò)大的情況下會(huì)比HTTP更具有優(yōu)勢(shì),更為方便的實(shí)現(xiàn)斷點(diǎn)上傳和進(jìn)度監(jiān)控,下面是官方文檔中的
基本方法
import os
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
def main():
# 實(shí)例化用戶(hù)授權(quán)管理
authorizer = DummyAuthorizer()
authorizer.add_user('user', '12345', 'path', perm='elradfmwMT')#添加用戶(hù) 參數(shù):username,password,允許的路徑,權(quán)限
authorizer.add_anonymous(os.getcwd())#這里是允許匿名用戶(hù),如果不允許刪掉此行即可
# 實(shí)例化FTPHandler
handler = FTPHandler
handler.authorizer = authorizer
# 設(shè)定一個(gè)客戶(hù)端鏈接時(shí)的標(biāo)語(yǔ)
handler.banner = "pyftpdlib based ftpd ready."
#handler.masquerade_address = '151.25.42.11'#指定偽裝ip地址
#handler.passive_ports = range(60000, 65535)#指定允許的端口范圍
address = (ipaddr, 21)#FTP一般使用21,20端口
server = FTPServer(address, handler)#FTP服務(wù)器實(shí)例
# set a limit for connections
server.max_cons = 256
server.max_cons_per_ip = 5
# 開(kāi)啟服務(wù)器
server.serve_forever()
if __name__ == '__main__':
main()
開(kāi)啟ftp服務(wù)器后要確定防火墻開(kāi)啟了21,20端口,并且在客戶(hù)端的瀏覽器中設(shè)置internet選項(xiàng)高級(jí)選項(xiàng)卡中的被動(dòng)ftp的勾去掉之后才能登陸到ftp服務(wù)器
從Windows登錄到服務(wù)器:

利用Python從ftp服務(wù)器上下載文件
from ftplib import FTP
ftp=FTP()
ftp.connect('localhost',21)#localhost改成服務(wù)器ip地址
ftp.login(user='user',passwd='12345')
file=open('f://ftpdownload/test.txt','wb')
ftp.retrbinary("RETR test.txt",file.write,1024)#從服務(wù)器上下載文件 1024字節(jié)一個(gè)塊
ftp.set_debuglevel(0)
ftp.close()
FTP服務(wù)器事件回調(diào)函數(shù):
class MyHandler(FTPHandler):
def on_connect(self):#鏈接時(shí)調(diào)用
print "%s:%s connected" % (self.remote_ip, self.remote_port)
def on_disconnect(self):#關(guān)閉連接是調(diào)用
# do something when client disconnects
pass
def on_login(self, username):#登錄時(shí)調(diào)用
# do something when user login
pass
def on_logout(self, username):#登出時(shí)調(diào)用
# do something when user logs out
pass
def on_file_sent(self, file):#文件下載后調(diào)用
# do something when a file has been sent
pass
def on_file_received(self, file):#文件上傳后調(diào)用
# do something when a file has been received
pass
def on_incomplete_file_sent(self, file):#下載文件時(shí)調(diào)用
# do something when a file is partially sent
pass
def on_incomplete_file_received(self, file):#上傳文件時(shí)調(diào)用
# remove partially uploaded files
import os
os.remove(file)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Ubuntu下Python+Flask分分鐘搭建自己的服務(wù)器教程
- 在阿里云服務(wù)器上配置CentOS+Nginx+Python+Flask環(huán)境
- Python中使用Flask、MongoDB搭建簡(jiǎn)易圖片服務(wù)器
- Python使用socketServer包搭建簡(jiǎn)易服務(wù)器過(guò)程詳解
- Python3搭建http服務(wù)器的實(shí)現(xiàn)代碼
- Python Web程序搭建簡(jiǎn)單的Web服務(wù)器
- Python3 jupyter notebook 服務(wù)器搭建過(guò)程
- 使用python實(shí)現(xiàn)快速搭建簡(jiǎn)易的FTP服務(wù)器
- Python3之簡(jiǎn)單搭建自帶服務(wù)器的實(shí)例講解
- 用Python一鍵搭建Http服務(wù)器的方法
- Python搭建HTTP服務(wù)器和FTP服務(wù)器
- Python 搭建Web站點(diǎn)之Web服務(wù)器與Web框架
- Python 利用flask搭建一個(gè)共享服務(wù)器的步驟
相關(guān)文章
python判斷字符串的前兩個(gè)字母是否是"id"的示例代碼
這篇文章主要介紹了python判斷字符串的前兩個(gè)字母是否是”id",使用 Python 的字符串切片來(lái)判斷一個(gè)字符串的前兩個(gè)字母是否是 "id",本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
pandas中對(duì)文本類(lèi)型數(shù)據(jù)的處理小結(jié)
這篇文章主要介紹了pandas中對(duì)于文本類(lèi)型數(shù)據(jù)的處理匯總,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11
Python實(shí)現(xiàn)求兩個(gè)csv文件交集的方法
這篇文章主要介紹了Python實(shí)現(xiàn)求兩個(gè)csv文件交集的方法,涉及Python針對(duì)csv文件的讀取、遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
Django模型層實(shí)現(xiàn)多表關(guān)系創(chuàng)建和多表操作
使用django ORM可以創(chuàng)建多表關(guān)系,并且也支持多張表之間的操作,以創(chuàng)建表關(guān)系和查詢(xún)兩部分說(shuō)明django ORM的多表操作,本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-07-07
Python中的shape[0]、shape[1]和shape[-1]使用方法
shape函數(shù)是Numpy中的函數(shù),它的功能是讀取矩陣的長(zhǎng)度,比如shape[0]就是讀取矩陣第一維度的長(zhǎng)度,這篇文章主要介紹了Python中的shape[0]、shape[1]和shape[-1]使用方法,需要的朋友可以參考下2023-07-07
python使用matplotlib繪制折線(xiàn)圖的示例代碼
這篇文章主要介紹了python使用matplotlib繪制折線(xiàn)圖的示例代碼,幫助大家更好的利用matplotlib繪制圖形,感興趣的朋友可以了解下2020-09-09
Python利用Beautiful Soup模塊創(chuàng)建對(duì)象詳解
這篇文章主要介紹了Python利用Beautiful Soup模塊創(chuàng)建對(duì)象的相關(guān)資料,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03

