python ftplib模塊下載FTP文件

from ftplib import FTP      # 加載ftp模塊
ftp = FTP()                 # 獲取FTP對象
ftp.set_debuglevel(2)       # 打開調試級別2,顯示詳細信息
ftp.connect('IP', PORT)     # 連接ftp,server和端口
ftp.login('user', 'password')  # 登錄用戶
print(ftp.getwelcome())     # 打印歡迎信息
ftp.cmd('xxx/xxx')          # 進入遠程目錄
bufsize = 1024              # 設置緩存區大小
filename='filename.txt'     # 需要下載的文件
file_handle=open(filename, 'wb').write   # 以寫的模式在本地打開文件
file.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.rmd(dirname)            # 刪除遠程目錄
ftp.pwd()                   # 返回當前所在位置
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()的區別

FTP.quit():發送QUIT命令給服務器並關閉掉連接。這是一個比較“緩和”的關閉連接的方式,但是如果服務器對QUIT命令返回錯誤時,則會拋出異常。
FTP.close():單方面的關閉掉連接,不應該用在已經關閉的連接之後,例如不應用在FTP.quit()之後.

例:

from ftplib import FTP
import time
import tarfile

from ftplib import FTP

def ftpconnect(host, username, password)
    ftp = FTP()
    ftp.connect(host, 21)
    ftp.login(username, password)
    return 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()

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("******", "***", "***")
    downloadfile(ftp, "***", "***")
    uploadfile(ftp, "***", "***")

    ftp.quit()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章