我是python的新手。 我想通过代码从以下URL下载数据:“ ftp://cddis.nasa.gov/gnss/products/ionex/”。但是,我想要的文件具有以下格式:“ codgxxxx.xxx.Z”。 所有这些文件都在每年(enter image description here)内,如下所示:enter image description here。 如何使用python下载这些文件?。
直到现在,我一直在将wget与以下代码一起使用:wget ftp://cddis.nasa.gov/gnss/products/ionex/2008/246/codg0246.07i.Z“,用于每个文件,但很乏味。
有人可以帮我吗!!
谢谢
答案 0 :(得分:0)
由于您知道FTP服务器中的结构,因此无需使用ftplib即可轻松完成此操作。
从服务器上实际检索目录列表(例如this question
)会更清洁(尽管我似乎无法连接到该美国国家航空航天局网址)
我建议阅读here,以获取有关如何实际执行FTP下载的更多信息。
但是类似的事情可能起作用。 (完整披露:我尚未对其进行测试)
import urllib
YEARS_TO_DOWNLOAD = 12
BASE_URL = "ftp://cddis.nasa.gov/gnss/products/ionex/"
FILE_PATTERN = "codg{}.{}.Z"
SAVE_DIR = "/home/your_name/nasa_ftp/"
year = 2006
three_digit_number = 0
for i in range(0, YEARS_TO_DOWNLOAD):
target = FILE_PATTERN.format(str(year + i), str(three_digit_number.zfill(3))
try:
urllib.urlretrieve(BASE_URL + target, SAVE_DIR + target)
except urllib.error as e:
print("An error occurred trying to download {}.\nReason: {}".format(target,
str(e))
else:
print("{} -> {}".format(target, SAVE_DIR + target))
print("Download finished!")