我需要从python访问ftp服务器,并下载特定文本文件的前N行。
我读到了关于ftplib和函数后退的内容,但我不知道如何在不下载整个文件的情况下检索前N行(但我不知道这是否可以在ftp协议中使用)
答案 0 :(得分:0)
您可以通过抛出异常来中止文件下载。
尽管如此,你必须明确地进行清理工作,否则将由retrlines
完成。
c = 1
class TooManyLines(Exception):
pass
contents = ""
def collectLines(s):
global contents, c
contents += s + "\n"
c += 1
if c == 5:
raise TooManyLines()
try:
ftp.retrlines("RETR /path/file.txt", collectLines)
except TooManyLines:
# read/skip response
ftp.getmultiline()
Cleaner将复制retrlines
实施并根据需要进行修改。