來源:昵稱最煩了 發(fā)布時間:2018-11-03 15:39:01 閱讀量:1196
Python中默認安裝的ftplib模塊定義了FTP類,其中函數(shù)有限,可用來實現(xiàn)簡單的ftp客戶端,用于上傳或下載文件,函數(shù)列舉如下
ftp登陸連接from ftplib import FTP #加載ftp模塊ftp=FTP() #設(shè)置變量ftp.set_debuglevel(2) #打開調(diào)試級別2,顯示詳細信息ftp.connect("IP","port") #連接的ftp sever和端口ftp.login("user","password") #連接的用戶名,密碼print ftp.getwelcome() #打印出歡迎信息ftp.cmd("xxx/xxx") #進入遠程目錄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)命令操作
3 4 5 6 7 8 9 10 | ftp.cwd(pathname)#設(shè)置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文件 |
FTP.quit()與FTP.close()的區(qū)別
FTP.quit():發(fā)送QUIT命令給服務(wù)器并關(guān)閉掉連接。這是一個比較“緩和”的關(guān)閉連接方式,但是如果服務(wù)器對QUIT命令返回錯誤時,會拋出異常。
FTP.close():單方面的關(guān)閉掉連接,不應(yīng)該用在已經(jīng)關(guān)閉的連接之后,例如不應(yīng)用在FTP.quit()之后。
# coding: utf-8from ftplib import FTPimport timeimport tarfileimport os# !/usr/bin/python# -*- coding: utf-8 -*-from ftplib import FTPdef 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()#從本地上傳文件到ftpdef 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()