在Python中的FTP服务器上使用.txt文件的文本填充变量

时间:2017-12-07 11:12:24

标签: python ftp ftplib

我认为我的问题听起来有点愚蠢,但我对python编程很陌生。

我只想要一个文本变量,它从FTP服务器的.txt文件中获取一个字符串。

总之:在FTP服务器上存储了一个.txt文件,我希望将该文件的内容存储在变量中......

这是我到目前为止......有人可以帮帮我吗?我提前感谢使用Python 3.6.3 :)!

from ftplib import FTP

ftp = FTP('1bk2t.ddns.net')
ftp.login(user='User', passwd = 'Password')

ftp.cwd('/path/')

filename = 'filename.txt'

ftp.retrbinary("RETR " + filename, open(filename, 'wb').write)
ftp.quit()

var = localfile.read

2 个答案:

答案 0 :(得分:1)

如果要将文本文件内容下载到内存而不使用任何临时文件,请使用retrlines like

contents = ""
def collectLines(s):
    global contents
    contents += s + "\n"

ftp.retrlines("RETR " + filename, collectLines)

或使用数组:

lines = []
ftp.retrlines("RETR " + filename, lines.append)

答案 1 :(得分:0)

您可以将StringIO用作retrlines RETR的缓冲区:

import io

with io.StringIO() as buffer_io:
    ftp.retrlines(f'RETR {filename}', buffer_io.write)
    content = buffer_io.getvalue()
相关问题