日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

基于python實現FTP文件上傳與下載操作(ftp&sftp協議)

瀏覽:207日期:2022-07-31 14:46:39

前言 FTP(File Transfer Protocol)是文件傳輸協議的簡稱。用于Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的服務器相連,訪問服務器上的大量程序和信息。如果用戶需要將文件從自己的計算機上發送到另一臺計算機上,可使用FTP上傳(upload)或(put)操作,而更多種的情況是用戶使用FTP下載(download)或獲取(get)操作從FTP服務器上下載文件在傳輸文件時我們可能會選擇sftp和ftp兩種協議中的一種,兩者的主要區別在于安全與傳輸速度,FTP傳輸數據的過程,他們在不同協議下的默認端口號是不同的,它有兩種傳輸模式:主動傳輸模式(PORT)和被動傳輸模式(PASSIVE,簡稱PASV),關于FTP相關內容這里就不做詳細數明了,這里將以python語言實現其功能

一 、基于ftp協議

Python中默認安裝的ftplib模塊定義了FTP類,其中函數有限,可用來實現簡單的ftp客戶端,用于上傳或下載文件,函數列舉如下

ftp登陸連接

from ftplib import FTP #加載ftp模塊ftp=FTP() #設置變量ftp.set_debuglevel(2) #打開調試級別2,顯示詳細信息ftp.connect(“IP”,“port”) #連接的ftp sever和端口ftp.login(“user”,“password”) #連接的用戶名,密碼print ftp.getwelcome() #打印出歡迎信息ftp.cmd(“xxx/xxx”) #進入遠程目錄bufsize=1024 #設置的緩沖區大小filename=“filename.txt” #需要下載的文件file_handle=open(filename,“wb”).write #以寫模式在本地打開文件ftp.retrbinaly(“RETR filename.txt”,file_handle,bufsize) #接收服務器上文件并寫入本地文件ftp.set_debuglevel(0) #關閉調試模式ftp.quit() #退出ftp

ftp相關命令操作

ftp.cwd(pathname) #設置FTP當前操作的路徑ftp.dir() #顯示目錄下所有目錄信息ftp.nlst() #獲取目錄下的文件ftp.mkd(pathname) #新建遠程目錄ftp.pwd() #返回當前所在位置ftp.rmd(dirname) #刪除遠程目錄ftp.delete(filename) #刪除遠程文件ftp.rename(fromname, toname)#將fromname修改名稱為toname。ftp.storbinaly(“STOR filename.txt”,file_handel,bufsize) #上傳目標文件ftp.retrbinary(“RETR filename.txt”,file_handel,bufsize) #下載FTP文件

#!/usr/bin/env python#coding:utf-8from ctypes import *import osimport sysimport ftplibimport timetoday = time.strftime(’%Y%m%d’,time.localtime(time.time()))ip = ’111.111.111.6’username = ’ftpUserName’ password = ’ftpPassWord’filename = ’203200189’+ today + ’A001.tar.gz’src_file = ’/ftpFilePath/’+filenameclass myFtp: ftp = ftplib.FTP() ftp.set_pasv(False) def __init__(self, host, port=21): self.ftp.connect(host, port) def Login(self, user, passwd): self.ftp.login(user, passwd) print(self.ftp.welcome) def DownLoadFile(self, LocalFile, RemoteFile): #下載指定目錄下的指定文件 file_handler = open(LocalFile, ’wb’) print(file_handler) # self.ftp.retrbinary('RETR %s' % (RemoteFile), file_handler.write)#接收服務器上文件并寫入本地文件 self.ftp.retrbinary(’RETR ’ + RemoteFile, file_handler.write) file_handler.close() return True def DownLoadFileTree(self, LocalDir, RemoteDir): # 下載整個目錄下的文件 print('remoteDir:', RemoteDir) if not os.path.exists(LocalDir): os.makedirs(LocalDir) self.ftp.cwd(RemoteDir) RemoteNames = self.ftp.nlst() print('RemoteNames', RemoteNames) for file in RemoteNames: Local = os.path.join(LocalDir, file) print(self.ftp.nlst(file)) if file.find('.') == -1: if not os.path.exists(Local): os.makedirs(Local) self.DownLoadFileTree(Local, file) else: self.DownLoadFile(Local, file) self.ftp.cwd('..') return True #從本地上傳文件到ftp def uploadfile(self, remotepath, localpath): bufsize = 1024 fp = open(localpath, ’rb’) ftp.storbinary(’STOR ’ + remotepath, fp, bufsize) ftp.set_debuglevel(0) fp.close() def close(self): self.ftp.quit()if __name__ == '__main__': ftp = myFtp(ip) ftp.Login(username, password) ftp.DownLoadFile(filename,src_file ) #ftp.DownLoadFileTree(’.’, ’/cteidate/’) ftp.close() print('ok!')

二 、基于sftp協議

在Python中可以使用paramiko模塊中的sftp登陸遠程主機,實現上傳和下載功能。

#!/usr/bin/python# coding=utf-8import paramikoimport osdef sftp_upload(host,port,username,password,local,remote): sf = paramiko.Transport((host,port)) sf.connect(username = username,password = password) sftp = paramiko.SFTPClient.from_transport(sf) try: if os.path.isdir(local):#判斷本地參數是目錄還是文件 for f in os.listdir(local):#遍歷本地目錄 sftp.put(os.path.join(local+f),os.path.join(remote+f))#上傳目錄中的文件 else: sftp.put(local,remote)#上傳文件 except Exception,e: print(’upload exception:’,e) sf.close()def sftp_download(host,port,username,password,local,remote): sf = paramiko.Transport((host,port)) sf.connect(username = username,password = password) sftp = paramiko.SFTPClient.from_transport(sf) try: if os.path.isdir(local):#判斷本地參數是目錄還是文件 for f in sftp.listdir(remote):#遍歷遠程目錄 sftp.get(os.path.join(remote+f),os.path.join(local+f))#下載目錄中文件 else: sftp.get(remote,local)#下載文件 except Exception,e: print(’download exception:’,e) sf.close()if __name__ == ’__main__’: host = ’111.111.1111.2’#主機 port = 22 #端口 username = ’root’ #用戶名 password = ’123456’ #密碼 local = ’/sftptest/’#本地文件或目錄,與遠程一致,若當前為windows目錄格式,window目錄中間需要使用雙斜線 remote = ’/opt/test/’#遠程文件或目錄,與本地一致,當前為linux目錄格式 sftp_upload(host,port,username,password,local,remote)#上傳 #sftp_download(host,port,username,password,local,remote)#下載

總結:

在python中這兩種協議實現文件的上傳與下載需要引入不同的模塊,實現起來還是比較簡單的,相關模塊里的源碼也是比較清晰。因為我需要的是每天定時下載文件,所以是在linux配置的定時每天早晨6點執行該python腳本的任務,所以文件名都是用日期命名的。TP.quit()與FTP.close()的區別FTP.quit():發送QUIT命令給服務器并關閉掉連接。這是一個比較“緩和”的關閉連接方式,但是如果服務器對QUIT命令返回錯誤時,會拋出異常。FTP.close():單方面的關閉掉連接,不應該用在已經關閉的連接之后,例如不應用在FTP.quit()之后。

到此這篇關于基于python實現FTP文件上傳與下載操作(ftp&sftp協議)的文章就介紹到這了,更多相關python 實現ftp文件上傳下載內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
激情婷婷久久| 日韩一区三区| 久久精品观看| 日韩欧美网址| 日韩欧美一区二区三区免费看| 高清在线一区| а√在线中文在线新版| 国产精品久久国产愉拍| 国产精品久久久久77777丨| 久久香蕉精品香蕉| av资源中文在线| 色婷婷久久久| 影音国产精品| 中文字幕av一区二区三区人| 日韩av中文在线观看| 日韩国产在线观看| 国产精品久久久网站| 久久99国产精品视频| www在线观看黄色| 婷婷中文字幕一区| 男女激情视频一区| 欧美日本三区| 精品久久视频| 免费一二一二在线视频| 久久高清免费| 免费人成精品欧美精品| 欧美日韩亚洲国产精品| 国产suv精品一区| 亚洲午夜黄色| 最新亚洲国产| 麻豆高清免费国产一区| 日韩精品1区| 国产色综合网| 国产欧美日韩影院| 日韩激情一区| 中文字幕一区二区三区四区久久| 国产伦理一区| 国产乱码午夜在线视频| 夜夜精品视频| 欧美日韩一区二区三区在线电影| 精品一区视频| 99国产精品视频免费观看一公开 | 精品久久美女| 91成人网在线观看| 亚洲a成人v| 精品日韩一区| 最新亚洲一区| 麻豆精品久久久| av一区二区高清| 日本视频中文字幕一区二区三区| 精品国产99| 在线精品小视频| 国产伦理久久久久久妇女| 亚洲啊v在线| 日韩三级一区| 天堂а√在线最新版中文在线| 在线精品一区二区| 成人一区不卡| 亚洲人www| 日本蜜桃在线观看视频| 亚洲区第一页| 欧美丝袜一区| 欧美激情 亚洲a∨综合| 欧美日韩国产高清| 乱一区二区av| 夜夜嗨网站十八久久| 免费在线亚洲欧美| 亚洲永久字幕| 精品99在线| 亚洲精品九九| 久久久久99| 国产黄色一区| 中文字幕日韩欧美精品高清在线| 亚洲国产欧美日本视频| 日韩不卡一区二区| 欧美特黄一区| 国产精品99视频| 日本天堂一区| 麻豆亚洲精品| 日韩一区三区| 国产精品mv在线观看| 亚洲一区观看| 久久美女性网| 国产一区2区| 国产日韩在线观看视频| 在线亚洲精品| 久久久久国产精品一区二区| 国产精品亚洲片在线播放| 男人天堂欧美日韩| 久久精品亚洲人成影院| 九九九精品视频| 日韩av资源网| 快she精品国产999| 99久久亚洲精品| 日韩av免费大片| 亚洲大全视频| 久久男人av资源站| 美女视频黄 久久| 91精品国产自产在线丝袜啪| 老牛影视一区二区三区| 亚洲女同一区| 欧美 日韩 国产精品免费观看| 久久电影tv| 欧美激情91| 久久精品xxxxx| 日本亚州欧洲精品不卡| 国产精品视区| 在线综合亚洲| 婷婷色综合网| japanese国产精品| 国产精品字幕| 免费看av不卡| 桃色一区二区| 日本久久成人网| 亚洲成a人片| 日本精品在线中文字幕| 成人美女视频| 丰满少妇一区| 精品国产一区二区三区性色av| 国产日本久久| 欧美日韩91| 欧美日本不卡高清| 欧美精品国产一区| 久久国产日韩欧美精品| 日本不卡视频一二三区| 免费的成人av| 亚洲视频国产| 一区二区三区国产在线| 亚洲乱亚洲高清| 久热精品在线| 日韩精品视频一区二区三区| 偷拍亚洲精品| 日本欧美一区| 国产精品mm| 成午夜精品一区二区三区软件| 成人精品高清在线视频| 伊人久久视频| 欧美99久久| 亚洲一区国产一区| 无码日韩精品一区二区免费| 91精品麻豆| 久久精品 人人爱| 久久av网址| 岛国av免费在线观看| 久久久久久久久久久妇女| 欧美性感美女一区二区| 亚洲一区欧美二区| 日韩免费精品| 美日韩一区二区三区| 老司机精品视频在线播放| 成人亚洲一区二区| 欧美99久久| 日韩一区二区三区高清在线观看| 久久国产三级| 欧美亚洲日本精品| 午夜在线视频观看日韩17c| 久久不射中文字幕| 国产午夜久久av| 国产乱码午夜在线视频| 国模 一区 二区 三区| 综合激情视频| 免费视频一区二区三区在线观看| 97精品一区| 国产精品呻吟| 国产精品视频一区视频二区| 国内精品亚洲| 欧美a级片一区| 黑丝美女一区二区| 日本va欧美va瓶| jizzjizz中国精品麻豆| 视频一区欧美精品| 91欧美精品| 激情黄产视频在线免费观看| 亚洲欧美日韩视频二区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 热久久免费视频| 欧美a在线观看| 激情久久久久久久| 日韩国产在线观看| 日韩理论片av| 亚洲午夜免费| 国产精品福利在线观看播放| 久久国产成人| 国产精品www994| 好看的亚洲午夜视频在线| 国产精品一区二区三区av麻| 日韩免费久久| 日韩精彩视频在线观看| 欧美激情另类| 日韩三级视频| av一区在线| 欧美日韩夜夜| 亚洲经典在线| 久久精品三级| 亚洲一区国产| 精品国产免费人成网站| 日本不卡视频在线观看| 色婷婷精品视频| 国产日产一区| 亚洲神马久久|