使用python3批量下载rbsp数据的示例代码
作者:不入流的IT宅男 发布时间:2021-05-02 19:05:27
标签:python3,下载,rbsp
1. 原始网站
https://www.rbsp-ect.lanl.gov/data_pub/rbspa/
2. 算法说明
进入需要下载的数据所在的目录,获取并解析该目录下的信息,解析出cdf文件名后,将cdf文件下载到内存中,随后保存到硬盘中。程序使用python3实现。
3. 程序代码
#!/bin/python3
# get the rbsp data
# writen by Liangjin Song on 20191219
import sys
import requests
from pathlib import Path
# the url containing the cdf files
url="https://www.rbsp-ect.lanl.gov/data_pub/rbspa/ECT/level2/2016/"
# local path to save the cdf file
path="/home/liangjin/Downloads/test/"
def main():
re=requests.get(url)
html=re.text
cdfs=resolve_cdf(html)
ncdf=len(cdfs)
if ncdf == 0:
return
print(str(ncdf) + " cdf files are detected.")
i=1
# download
for f in cdfs:
rcdf=url+f
lcdf=path+f
print(str(i)+ " Downloading " + rcdf)
download_cdf(rcdf,lcdf)
i+=1
return
# resolve the file name of cdf
def resolve_cdf(html):
cdfs=list()
head=html.find("href=")
if head == -1:
print("The cdf files not found!")
return cdfs
leng=len(html)
while head != -1:
tail=html.find(">",head,leng)
# Extract the cdf file name
cdf=html[head+6:tail-1]
head=html.find("href=",tail,leng)
if cdf.find('cdf') == -1:
continue
cdfs.append(cdf)
return cdfs
def download_cdf(rcdf,lcdf):
rfile=requests.get(rcdf)
with open(lcdf,"wb") as f:
f.write(rfile.content)
f.close()
return
if __name__ == "__main__":
lpath=Path(path)
if not lpath.is_dir():
print("Path not found: " + path)
sys.exit(0)
sys.exit(main())
4. 使用说明
url为远程cdf文件所在路径。
path为本地保存cdf文件的路径。
url和path的末尾都有“/”(Linux下情形,若是Windows,路径分隔符为“\\”,则path末尾应为“\\”)。
5. 运行效果
来源:https://blog.csdn.net/Function_RY/article/details/103622772
0
投稿
猜你喜欢
- 对于个人网站来说,受到建站条件的制约,Access数据库成了广大个人网站站长的首选。然而,Access数据库本身存在很多安全隐患,攻击者一旦
- 编写 models.py 文件from django.db import models# Create your models here.c
- tkinter 绘制GUI简单明了,制作一些简单的GUI足够,目前遇到的一个问题是不能同时排列显示多幅图片(目前没找到同时显示解决方法),退
- Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。例如,Laravel 内置了一个中间件来验证用户的身份认证。如果
- 本文使用的代码book_dict = {"price": 500, "bookName": &quo
- 如下所示:import matplotlib.pyplot as pltimport numpy as npdef readfile(fil
- 今天,由于工作需要,我在自己的电脑上配置了Mysql5环境,同时安装了一个phpMyAdmin管理工具,安装完成后,发现在phpMyAdmi
- 1.前言在移动商业广告的测试的工作中,经常会需要对广告请求进行捕获和分析,常使用的有两个测试工具:fiddler,Charles,这两个工具
- 基于Ubuntu16.04 + Python3 + nginx + mysql + Django接下来先安装这些必要的环境,这些操作都是在你
- 前言:循环中通过break语句会立刻终止并跳出循环语句。break就像是终止按键,不管执行到哪一步,只要遇到break,不管什么后续步骤,直
- 本文实例为大家分享了python实现QQ空间自动点赞的具体代码,供大家参考,具体内容如下项目github地址使用python实现qq空间自动
- 导语今天就给大家带来个语言识别跟语言赚文字的小工具感兴趣的铁汁萌可以往下滑了1.直接使用在1.2官网注册后拿到APISecret和APIKe
- 本文实例讲述了golang基于websocket实现的简易聊天室。分享给大家供大家参考,具体如下:先说点无关的,最近忙于工作没有更新博客,今
- python实现银行管理系统,供大家参考,具体内容如下有的地方用的方法的比较复杂,主要是为回顾更多的知识test1用来存类和函数#test1
- 目录1 figure1.1 创建figure1.2 figure的常用设置1.2.1 set方法通用设置1.2.2 设置figure标题1.
- 这篇文章主要介绍了python导入不同目录下的自定义模块过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 我就废话不多说了,大家还是直接看代码吧~# 用一行代码实现for循环初始化数组o = 10b = [ o + u for u in rang
- 本文实例讲述了js控制多图左右滚动切换效果。分享给大家供大家参考。具体如下:这是一款纯js实现点击左右按钮图片自动左右平滑滚动,默认5个一组
- 一、标签语法由%}和 {% 来定义的,例如:{%tag%} {%endtag%},完整的标签有开始就有结束,如条件语句,有条件判断的开始,也
- 使用python制作好看的时钟,供大家参考,具体内容如下游戏用到初高中使用的三角函数等知识开发,长话短说,上完整程序。#-*- coding