python使用ftplib模塊實現FTP文件的上傳下載


python已經默認安裝了ftplib模塊,用其中的FTP類可以實現FTP文件的上傳下載

FTP文件上傳下載

# coding:utf8
from ftplib import FTP


def upload(f, remote_path, local_path):
    fp = open(local_path, "rb")
    buf_size = 1024
    f.storbinary("STOR {}".format(remote_path), fp, buf_size)
    fp.close()


def download(f, remote_path, local_path):
    fp = open(local_path, "wb")
    buf_size = 1024
    f.retrbinary('RETR {}'.format(remote_path), fp.write, buf_size)
    fp.close()


if __name__ == "__main__":
    ftp = FTP()
    ftp.connect("x.x.x.x", 21)      # 第一個參數可以是ftp服務器的ip或者域名,第二個參數為ftp服務器的連接端口,默認為21
    ftp.login(username, password)     # 匿名登錄直接使用ftp.login()
    ftp.cwd("tmp")                # 切換到tmp目錄
    upload(ftp, "ftp_a.txt", "a.txt")   # 將當前目錄下的a.txt文件上傳到ftp服務器的tmp目錄,命名為ftp_a.txt
    download(ftp, "ftp_a.txt", "b.txt")  # 將ftp服務器tmp目錄下的ftp_a.txt文件下載到當前目錄,命名為b.txt
    ftp.quit()

 

FTP對象常用方法

ftp.cwd(path)                    設置FTP當前操作的路徑,同linux中的cd

ftp.dir()                             顯示目錄下所有信息

ftp.nlst()                            獲取目錄下的文件,顯示的是文件名列表

ftp.mkd(directory)             新建遠程目錄

ftp.rmd(directory)              刪除遠程目錄

ftp.rename(old, new)         將遠程文件old重命名為new

ftp.delete(file_name)          刪除遠程文件

ftp.storbinary(cmd, fp, bufsize)             上傳文件,cmd是一個存儲命令,可以為"STOR filename.txt", fp為類文件對象(有read方法),bufsize設置緩沖大小

ftp.retrbinary(cmd, callback, bufsize)              下載文件,cmd是一個獲取命令,可以為"RETR filename.txt", callback是一個回調函數,用於讀取獲取到的數據塊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM