1 # FTP操作 2 import ftplib 3 4 host = '192.168.20.191' 5 username = 'ftpuser' 6 password = 'ftp123' 7 file = '1.txt' 8 9 f = ftplib.FTP(host) # 實例化FTP對象 10 f.login(username, password) # 登錄 11 12 # 獲取當前路徑 13 pwd_path = f.pwd() 14 print("FTP當前路徑:", pwd_path) 15 16 17 # 逐行讀取ftp文本文件 18 # f.retrlines('RETR %s' % file) 19 20 def ftp_download(): 21 '''以二進制形式下載文件''' 22 file_remote = '1.txt' 23 file_local = 'D:\\test_data\\ftp_download.txt' 24 bufsize = 1024 # 設置緩沖器大小 25 fp = open(file_local, 'wb') 26 f.retrbinary('RETR %s' % file_remote, fp.write, bufsize) 27 fp.close() 28 29 30 def ftp_upload(): 31 '''以二進制形式上傳文件''' 32 file_remote = 'ftp_upload.txt' 33 file_local = 'D:\\test_data\\ftp_upload.txt' 34 bufsize = 1024 # 設置緩沖器大小 35 fp = open(file_local, 'rb') 36 f.storbinary('STOR ' + file_remote, fp, bufsize) 37 fp.close() 38 39 40 ftp_download() 41 ftp_upload() 42 f.quit() 43
FTP對象方法說明
- login(user='anonymous',passwd='', acct='') 登錄 FTP 服務器,所有參數都是可選的
- pwd() 獲得當前工作目錄
- cwd(path) 把當前工作目錄設置為 path 所示的路徑
- dir ([path[,...[,cb]]) 顯示 path 目錄里的內容,可選的參數 cb 是一個回調函數,會傳遞給 retrlines()方法
- nlst ([path[,...]) 與 dir()類似, 但返回一個文件名列表,而不是顯示這些文件名
- retrlines(cmd [, cb]) 給定 FTP命令(如“ RETR filename”),用於下載文本文件。可選的回調函數 cb 用於處理文件的每一行
- retrbinary(cmd,cb[,bs=8192[, ra]]) 與 retrlines()類似,只是這個指令處理二進制文件。回調函數 cb 用於處理每一塊(塊大小默認為 8KB)下載的數據
- storlines(cmd, f) 給定 FTP 命令(如“ STOR filename”),用來上傳文本文件。要給定一個文件對象 f
- storbinary(cmd, f,[,bs=8192]) 與 storlines()類似,只是這個指令處理二進制文件。要給定一個文件對象 f,上傳塊大小 bs 默認為 8KB
- rename(old, new) 把遠程文件 old 重命名為 new
- delete(path) 刪除位於 path 的遠程文件
- mkd(directory) 創建遠程目錄
- rmd(directory) 刪除遠程目錄
- quit() 關閉連接並退出