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

使用Python操作FTP實(shí)現(xiàn)上傳和下載的方法

 更新時(shí)間:2019年04月01日 09:15:43   作者:屌絲IT男  
今天小編就為大家分享一篇關(guān)于使用Python操作FTP實(shí)現(xiàn)上傳和下載的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

搭建ftp服務(wù)器server端

# -*- coding:utf-8 -*-
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
# 實(shí)例化DummyAuthorizer來(lái)創(chuàng)建ftp用戶
authorizer = DummyAuthorizer()
# 參數(shù):用戶名,密碼,目錄,權(quán)限
authorizer.add_user('admin', '123456', r'C:\Users\Administrator\Desktop\ftp', perm='elradfmwMT')
# 匿名登錄
# authorizer.add_anonymous('/home/nobody')
handler = FTPHandler
handler.authorizer = authorizer
# 參數(shù):IP,端口,handler
server = FTPServer(('0.0.0.0', 2121), handler)      #設(shè)置為0.0.0.0為本機(jī)的IP地址
server.serve_forever()

函數(shù)釋義

Python中默認(rèn)安裝的ftplib模塊定義了FTP類,其中函數(shù)有限,可用來(lái)實(shí)現(xiàn)簡(jiǎn)單的ftp客戶端,用于上傳或下載文件,函數(shù)列舉如下

ftp登陸連接
from ftplib import FTP      #加載ftp模塊
ftp=FTP()             #設(shè)置變量
ftp.set_debuglevel(2)       #打開調(diào)試級(jí)別2,顯示詳細(xì)信息
ftp.connect("IP","port")     #連接的ftp sever和端口
ftp.login("user","password")   #連接的用戶名,密碼
print ftp.getwelcome()      #打印出歡迎信息
ftp.cmd("xxx/xxx")        #進(jìn)入遠(yuǎn)程目錄
bufsize=1024           #設(shè)置的緩沖區(qū)大小
filename="filename.txt"      #需要下載的文件
file_handle=open(filename,"wb").write #以寫模式在本地打開文件
ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收服務(wù)器上文件并寫入本地文件
ftp.set_debuglevel(0)       #關(guān)閉調(diào)試模式
ftp.quit()            #退出ftp
ftp相關(guān)命令操作
ftp.cwd(pathname)         #設(shè)置FTP當(dāng)前操作的路徑
ftp.dir()             #顯示目錄下所有目錄信息
ftp.nlst()            #獲取目錄下的文件
ftp.mkd(pathname)         #新建遠(yuǎn)程目錄
ftp.pwd()             #返回當(dāng)前所在位置
ftp.rmd(dirname)         #刪除遠(yuǎn)程目錄
ftp.delete(filename)       #刪除遠(yuǎn)程文件
ftp.rename(fromname, toname)#將fromname修改名稱為toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上傳目標(biāo)文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize) #下載FTP文件

FTP.quit()與FTP.close()的區(qū)別

  • FTP.quit():發(fā)送QUIT命令給服務(wù)器并關(guān)閉掉連接。這是一個(gè)比較“緩和”的關(guān)閉連接方式,但是如果服務(wù)器對(duì)QUIT命令返回錯(cuò)誤時(shí),會(huì)拋出異常。
  • FTP.close():?jiǎn)畏矫娴年P(guān)閉掉連接,不應(yīng)該用在已經(jīng)關(guān)閉的連接之后,例如不應(yīng)用在FTP.quit()之后。

例:下載、上傳文件

# coding: utf-8
from ftplib import FTP
import time
import tarfile
import os
# !/usr/bin/python
# -*- coding: utf-8 -*-
from ftplib import FTP
def ftpconnect(host, username, password):
  ftp = FTP()
  # ftp.set_debuglevel(2)
  ftp.connect(host, 21)
  ftp.login(username, password)
  return ftp
#從ftp下載文件
def downloadfile(ftp, remotepath, localpath):
  bufsize = 1024
  fp = open(localpath, 'wb')
  ftp.retrbinary('RETR ' + remotepath, fp.write, bufsize)
  ftp.set_debuglevel(0)
  fp.close()
#從本地上傳文件到ftp
def uploadfile(ftp, remotepath, localpath):
  bufsize = 1024
  fp = open(localpath, 'rb')
  ftp.storbinary('STOR ' + remotepath, fp, bufsize)
  ftp.set_debuglevel(0)
  fp.close()
if __name__ == "__main__":
  ftp = ftpconnect("113.105.139.xxx", "ftp***", "Guest***")
  downloadfile(ftp, "Faint.mp4", "C:/Users/Administrator/Desktop/test.mp4")
  #調(diào)用本地播放器播放下載的視頻
  os.system('start "C:\Program Files\Windows Media Player\wmplayer.exe" "C:/Users/Administrator/Desktop/test.mp4"')
  uploadfile(ftp, "C:/Users/Administrator/Desktop/test.mp4", "test.mp4")
  ftp.quit()

FTP對(duì)象方法說(shuō)明

  • login(user='anonymous',passwd=”, acct=”) 登錄 FTP 服務(wù)器,所有參數(shù)都是可選的
  • pwd() 獲得當(dāng)前工作目錄
  • cwd(path) 把當(dāng)前工作目錄設(shè)置為 path 所示的路徑
  • dir ([path[,…[,cb]]) 顯示 path 目錄里的內(nèi)容,可選的參數(shù) cb 是一個(gè)回調(diào)函數(shù),會(huì)傳遞給 retrlines()方法
  • nlst ([path[,…]) 與 dir()類似, 但返回一個(gè)文件名列表,而不是顯示這些文件名
  • retrlines(cmd [, cb]) 給定 FTP命令(如“ RETR filename”),用于下載文本文件??蛇x的回調(diào)函數(shù) cb 用于處理文件的每一行
  • retrbinary(cmd,cb[,bs=8192[, ra]]) 與 retrlines()類似,只是這個(gè)指令處理二進(jìn)制文件?;卣{(diào)函數(shù) cb 用于處理每一塊(塊大小默認(rèn)為 8KB)下載的數(shù)據(jù)
  • storlines(cmd, f) 給定 FTP 命令(如“ STOR filename”),用來(lái)上傳文本文件。要給定一個(gè)文件對(duì)象 f
  • storbinary(cmd, f,[,bs=8192]) 與 storlines()類似,只是這個(gè)指令處理二進(jìn)制文件。要給定一個(gè)文件對(duì)象 f,上傳塊大小 bs 默認(rèn)為 8KB
  • rename(old, new) 把遠(yuǎn)程文件 old 重命名為 new
  • delete(path) 刪除位于 path 的遠(yuǎn)程文件
  • mkd(directory) 創(chuàng)建遠(yuǎn)程目錄
  • rmd(directory) 刪除遠(yuǎn)程目錄
  • quit() 關(guān)閉連接并退出

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Python集成開發(fā)工具Pycharm的安裝和使用詳解

    Python集成開發(fā)工具Pycharm的安裝和使用詳解

    這篇文章主要介紹了Python集成開發(fā)工具Pycharm的安裝和使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python中round函數(shù)保留兩位小數(shù)的方法

    python中round函數(shù)保留兩位小數(shù)的方法

    在本篇內(nèi)容里小編給各位分享的是一篇關(guān)于python中round函數(shù)保留兩位小數(shù)的方法及相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • PyCharm中如何創(chuàng)建帶有注釋的py文件

    PyCharm中如何創(chuàng)建帶有注釋的py文件

    這篇文章主要介紹了 PyCharm中如何創(chuàng)建帶有注釋的py文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-08-08
  • Pandas數(shù)據(jù)分析-pandas數(shù)據(jù)框的多層索引

    Pandas數(shù)據(jù)分析-pandas數(shù)據(jù)框的多層索引

    這篇文章主要介紹了Pandas數(shù)據(jù)分析-pandas數(shù)據(jù)框的多層索引,pandas數(shù)據(jù)框針對(duì)高維數(shù)據(jù),也有多層索引的辦法去應(yīng)對(duì)具體詳細(xì)的內(nèi)容介紹需要的小伙伴可以參考一下
    2022-08-08
  • Python制作簡(jiǎn)單的網(wǎng)頁(yè)爬蟲

    Python制作簡(jiǎn)單的網(wǎng)頁(yè)爬蟲

    自己寫的一個(gè)爬蟲,模仿了python核心編程書里的程序,有詳細(xì)的注釋。 是我一個(gè)理解學(xué)習(xí)的過(guò)程吧。 有需要的小伙伴可以參考下
    2015-11-11
  • 使用python實(shí)現(xiàn)希爾、計(jì)數(shù)、基數(shù)基礎(chǔ)排序的代碼

    使用python實(shí)現(xiàn)希爾、計(jì)數(shù)、基數(shù)基礎(chǔ)排序的代碼

    希爾排序是一個(gè)叫希爾的數(shù)學(xué)家提出的一種優(yōu)化版本的插入排序。這篇文章主要介紹了使用python實(shí)現(xiàn)希爾、計(jì)數(shù)、基數(shù)基礎(chǔ)排序,需要的朋友可以參考下
    2019-12-12
  • Pandas如何提取非空行值

    Pandas如何提取非空行值

    這篇文章主要介紹了Pandas如何提取非空行值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • numpy的squeeze函數(shù)使用方法

    numpy的squeeze函數(shù)使用方法

    這篇文章主要介紹了numpy的squeeze函數(shù)使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • IPython庫(kù)中的display函數(shù)的簡(jiǎn)介、使用方法、應(yīng)用案例詳細(xì)攻略

    IPython庫(kù)中的display函數(shù)的簡(jiǎn)介、使用方法、應(yīng)用案例詳細(xì)攻略

    display 函數(shù)可以接受一個(gè)或多個(gè)參數(shù),每個(gè)參數(shù)都是一個(gè) Python 對(duì)象。它會(huì)自動(dòng)根據(jù)對(duì)象的類型選擇合適的顯示方式,并在 Jupyter Notebook 中顯示出來(lái),這篇文章主要介紹了IPython庫(kù)中的display函數(shù)的簡(jiǎn)介、使用方法、應(yīng)用案例詳細(xì)攻略,需要的朋友可以參考下
    2023-04-04
  • python 遍歷列表提取下標(biāo)和值的實(shí)例

    python 遍歷列表提取下標(biāo)和值的實(shí)例

    今天小編就為大家分享一篇python 遍歷列表提取下標(biāo)和值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論

呼图壁县| 江都市| 德安县| 平塘县| 中牟县| 平远县| 清河县| 常山县| 余庆县| 莱芜市| 惠州市| 红原县| 铜山县| 筠连县| 冷水江市| 五大连池市| 宽城| 普兰县| 辽阳县| 台北市| 景宁| 巴彦县| 手机| 永顺县| 广河县| 监利县| 西城区| 泽州县| 左权县| 醴陵市| 岑溪市| 茌平县| 出国| 涡阳县| 清新县| 逊克县| 项城市| 梅河口市| 彝良县| 临泽县| 民权县|