《python核心程式設計》讀書筆記-ftplib.FTP類的方法
阿新 • • 發佈:2019-01-13
簡單用法
互動式的一個示例
>>> from ftplib import FTP >>> f=FTP('127.0.0.1') >>> f.login(user='anonymous',passwd='') '230 Login successful.' >>> f.dir() drwxr-xr-x 2 0 0 45 Jan 09 08:35 pub >>> f.dir('pub') -rw-r--r-- 1 0 0 0 Jan 09 08:35 1.txt -rw-r--r-- 1 0 0 0 Jan 09 08:35 2.txt -rw-r--r-- 1 0 0 0 Jan 09 08:35 3.txt >>> f.quit() '221 Goodbye.'
ftplib.FTP類方法
方法 | 描述 |
---|---|
dir(argument[, …]) | 顯示path目錄裡的內容,可選引數cb是一個回撥函式,會傳遞給retrlines()方法 |
nlst(argument[, …]) | 與dir()類似,返回的檔名列表,而不是顯示這些檔案檔名 |
rmd(dirname) | 刪除伺服器上名為dirname的目錄 |
retrbinary(cmd, callback, blocksize=8192, rest=None) | 與retrlines()類似,只是這個指令處理二進位制檔案,回撥函式cb用於處理每一塊下載的資料 |
retrlines(cmd, callback=None) | 給定FTP命令(如“RETR filename”),用於下載文字檔案,可選的回撥函式cb用於處理檔案的每一行 |
storbinary(cmd, fp, blocksize=8192, callback=None, rest=None) | 與storlines()類似,只是這個指令處理二進位制檔案,要給定一個檔案物件f,上傳塊大小bs預設為8kb |
storlines(cmd, fp, callback=None) | 給定FTP命令(如“STOR filename”),用來上傳文字檔案,要給定一個檔案物件f |
rename(fromname, toname) | 將伺服器上的檔案fromname重新命名為toname。 |
delete(filename) | 從伺服器中刪除名為filename的檔案。如果成功,則返回響應的文字,否則會引發error_perm許可權錯誤或 error_reply其他錯誤。 |
cwd(pathname) | 在伺服器上設定當前目錄 |
mkd(pathname) | 在伺服器上建立一個新目錄。 |
pwd() | 返回伺服器上當前目錄的路徑名。 |
quit() | 關閉連線 |
客戶端FTP示例程式
import ftplib
import os
import socket
HOST='192.168.253.128' #這是我自己搭建的ftp伺服器
DIRN='pub' #下載檔案的目錄
FILE='1.txt' #下載的檔案
def main():
try:
f=ftplib.FTP(HOST)
except (socket.error,socket.gaierror) as e:
print('ERROR:cannot reach "%s" % HOST')
return
print('*** Connected to host "%s"' % HOST)
try:
f.login()
except ftplib.error_perm:
print('ERROR:cannot login anonymously')
f.quit()
return
print('*** Logged in as "anonymous"')
try:
f.cwd(DIRN)
except ftplib.error_perm:
print('ERROR:cannot CD to "%s" ' % DIRN)
f.quit()
return
print('*** Change to %s to CWD' % FILE)
try:
f.retrbinary('RETR %s' % FILE , open(FILE,'wb').write)
except ftplib.error_perm:
print('ERROR: cannot read file "%s"' % FILE)
os.unlink(FILE)
else:
print('Downloaded "%s" to CWD' %FILE)
f.quit()
if __name__ == '__main__':
main()
參考文件 https://docs.python.org/3/library/ftplib.html
參考書籍 《python核心程式設計》