代码在使用蟒蛇不同的目录下载一次数据

问题描述 投票:-2回答:1

我是新的蟒蛇。我想通过这个网址代码数据下载:“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”,对文件中的每一个,但就是繁琐。

谁能帮我请!。

谢谢

python download ftp
1个回答
0
投票

既然你知道FTP服务器的结构,这可能是很容易做到,而不必使用FTPLIB。

这将是清洁剂实际上从服务器检索目录列表,如this question

(我似乎不能够连接到NASA URL虽然)

我建议对如何实际执行FTP下载阅读here更多。

但是,这样的事情可能工作。 (全面披露:我没有测试过)

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!")
© www.soinside.com 2019 - 2024. All rights reserved.