2

我正在访问的 ftp 站点不支持 MLSD。我可以使用 nlst 来获取文件列表,但 nlst() 只是返回文件名而不是 dir() 显示的详细信息

ftpObj.dir()

drwxr-xr-x   2 ada      storage         0 Nov 12 00:38 Deltas
drwxr-xr-x   2 ada      storage         0 Nov 10 22:38 History

所以,我尝试了一种迂回的方式(在另一篇文章中推荐):

data=[]
print(data.__len__())
data.append(ftpObj.dir())
print(data.__len__())

上面第一个打印的输出为 0,第二个打印的输出为 1。但是,我无法访问数据中的信息,即如果我尝试

for line in data:
    print(line)

输出是

None

我怎样才能看到里面的数据 - 上面的内容?

4

1 回答 1

2

将 data.append 作为最后一个参数传递给FTP.dir(),

print(data.__len__())
ftpObj.dir(data.append)
print(data.__len__())

FTP.dir(参数[, ...])

生成由 LIST 命令返回的目录列表,并将其打印到标准输出。可选参数是要列出的目录(默认是当前服务器目录)。可以使用多个参数将非标准选项传递给 LIST 命令。如果最后一个参数是一个函数,它被用作回调函数,就像 retrlines(); 默认打印到 sys.stdout。此方法返回无。

于 2013-11-12T02:11:14.887 回答