[英]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.