【发布时间】:2016-04-11 09:26:35
【问题描述】:
我一直在使用一个小脚本,使用 ftplib 从 NOAA CLASS 存档下载卫星数据。直到最近,这一直完美无缺,但现在我看不到与我的订单对应的目录。 ftplib 查询实际上只看到一小部分可用目录。
以下几行说明 ftplib 只能看到根目录中的一部分内容:
from ftplib import FTP
HOST = "ftp.class.ncdc.noaa.gov"
ftp = FTP(HOST)
ftp.login()
files = ftp.nlst()
print len(files)
is_ok = '2304318203' in files
print is_ok
ftp.quit()
它产生以下输出:
1926
False
在正常的 ftp 会话中,我在根目录下看到 7203 个项目,尤其是我的目录下的有序数据:
Name (ftp.class.ngdc.noaa.gov:a000680): ftp
331 Any password will work
Password:
230 Any password will work
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd 2304318203
250 OK. Current directory is /2304318203
ftp> pwd
257 "/2304318203" is your current location
我使用的是 Python 2.7,但正如我上面所说,这在以前一直有效,具有类似的 NOAA CLASS 存档命令。那么,可能是数据提供者在他们的服务器上进行了一些更改导致了这种奇怪的行为?
【问题讨论】:
-
我刚刚使用
ftplib和 CLI 测试了主机 - 我从两者获得了相同的目录列表。当您使用“正常的 ftp 会话”时,我认为您不会匿名登录是否正确?这可以解释看到不同的列表...... -
谢谢。嗯,我不这么认为。在这两种情况下,我都匿名登录。我使用“ftp”并且在使用 CLI 时不提供任何内容或提供我的电子邮件地址,并且我尝试了 ftp.login() 和 ftp.login('anonymous',
) 但没有任何变化。那么,我说得对吗?在这两种情况下,您只看到 1926 条左右的条目?