簡體   English   中英

訪問ftp服務器中的文件

[英]Accesing a file in a ftp server

我已經編寫了一個程序,並且有一個函數可以從ftp服務器獲取一個名為news_2014.txt的文本文件。 我目前有以下代碼:

def getnews():
server = 'my ftp server ip'
ftp= ftplib.FTP(server)
username = 'news2'
password = ' '
ftp.login(username,password)
filename = 'ftp://my ftp server ip/news/news_2014.txt'
path = 'news'
ftp.cwd(path)
ftp.retrlines('RETR' + filename, open(filename, "w").open)

我想做的是讓程序使用readlines在Tkinter標簽上顯示行。 但是,如果我嘗試調用top函數,它會說:

IOError: [Errno 22] invalid mode ('w') or filename: 'ftp://news/news_2014.txt'

RETR只需要遠程路徑名,而不需要URL。 同樣,您無法open URL; 您需要傳遞一個有效的本地文件名。

將其更改為filename = 'news_2014.txt'應該可以filename = 'news_2014.txt'解決此問題。

retrlines方法檢索行並可選地執行回調。 您已經指定了一個回調來打開本地文件以進行寫入,但是幾乎不需要為每個檢索到的行執行此操作。 嘗試以下方法:

textlines = []
ftp.retrlines('RETR ' + filename, textlines.append)

然后顯示textlines的內容。 (也請注意RETR命令及其參數之間的空格。)

我認為文檔中的示例對於新手來說是令人困惑的。 有人應該提交錯誤報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM