最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python搭建FTP服務(wù)器的方法示例

 更新時(shí)間:2018年01月19日 15:46:39   作者:shu_8708  
本篇文章主要介紹了Python搭建FTP服務(wù)器的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧

Python版本 3.6.2

使用的ftp包:pyftpdlib    pip install pyftpdlib就可以下載安裝了

FTP協(xié)議下載上傳文件在文件過大的情況下會(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í)例化用戶授權(quán)管理 
  authorizer = DummyAuthorizer() 
  authorizer.add_user('user', '12345', 'path', perm='elradfmwMT')#添加用戶 參數(shù):username,password,允許的路徑,權(quán)限 
  authorizer.add_anonymous(os.getcwd())#這里是允許匿名用戶,如果不允許刪掉此行即可 
 
  # 實(shí)例化FTPHandler 
  handler = FTPHandler 
  handler.authorizer = authorizer 
 
  # 設(shè)定一個(gè)客戶端鏈接時(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 
 
  # 開啟服務(wù)器 
  server.serve_forever() 
 
if __name__ == '__main__': 
  main() 

開啟ftp服務(wù)器后要確定防火墻開啟了21,20端口,并且在客戶端的瀏覽器中設(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python判斷字符串的前兩個(gè)字母是否是"id"的示例代碼

    python判斷字符串的前兩個(gè)字母是否是"id"的示例代碼

    這篇文章主要介紹了python判斷字符串的前兩個(gè)字母是否是”id",使用 Python 的字符串切片來(lái)判斷一個(gè)字符串的前兩個(gè)字母是否是 "id",本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • pandas中對(duì)文本類型數(shù)據(jù)的處理小結(jié)

    pandas中對(duì)文本類型數(shù)據(jù)的處理小結(jié)

    這篇文章主要介紹了pandas中對(duì)于文本類型數(shù)據(jù)的處理匯總,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Python實(shí)現(xiàn)求兩個(gè)csv文件交集的方法

    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模型層實(shí)現(xiàn)多表關(guān)系創(chuàng)建和多表操作

    使用django ORM可以創(chuàng)建多表關(guān)系,并且也支持多張表之間的操作,以創(chuàng)建表關(guān)系和查詢兩部分說明django ORM的多表操作,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-07-07
  • Python中的shape[0]、shape[1]和shape[-1]使用方法

    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繪制折線圖的示例代碼

    python使用matplotlib繪制折線圖的示例代碼

    這篇文章主要介紹了python使用matplotlib繪制折線圖的示例代碼,幫助大家更好的利用matplotlib繪制圖形,感興趣的朋友可以了解下
    2020-09-09
  • linux下python中文亂碼解決方案詳解

    linux下python中文亂碼解決方案詳解

    這篇文章主要介紹了linux下python中文亂碼解決方案詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Django日志模塊logging的配置詳解

    Django日志模塊logging的配置詳解

    日志在程序開發(fā)中是少不了的,通過日志我們可以分析到錯(cuò)誤在什么地方,有什么異常。在生產(chǎn)環(huán)境下有很大的用處。在java 開發(fā)中通常用 log4j,logback 等三方組件。下面這篇文章主要介紹了Django日志模塊logging的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • Pytorch中的學(xué)習(xí)率衰減及其用法詳解

    Pytorch中的學(xué)習(xí)率衰減及其用法詳解

    這篇文章主要介紹了Pytorch中的學(xué)習(xí)率衰減及其用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python利用Beautiful Soup模塊創(chuàng)建對(duì)象詳解

    Python利用Beautiful Soup模塊創(chuàng)建對(duì)象詳解

    這篇文章主要介紹了Python利用Beautiful Soup模塊創(chuàng)建對(duì)象的相關(guān)資料,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03

最新評(píng)論

邛崃市| 华亭县| 砚山县| 临邑县| 清水河县| 长子县| 石河子市| 拉萨市| 石门县| 榆社县| 枣阳市| 蒙自县| 航空| 怀化市| 延庆县| 吉安县| 龙门县| 奇台县| 宁武县| 盱眙县| 莱芜市| 龙川县| 丰城市| 赤城县| 磴口县| 凌源市| 正蓝旗| 岗巴县| 彝良县| 万源市| 卢湾区| 北票市| 水城县| 高邮市| 聂荣县| 厦门市| 漠河县| 阳城县| 通城县| 芜湖县| 轮台县|