Python3.从csv文件解析MODIS数据的批量下载链接
2018-01-30 22:08
801 查看
Python3.从csv文件解析MODIS数据的批量下载链接
从LAADS DAAC下载MODIS数据很痛苦,检索出的数据有好多页,要是有个批量下载的按钮就好了,但是这个网页上只有导出.csv或.json的选项,导出后还并不是直接的下载链接——这篇就是用Python的pandas来解决这个问题的。代码如下:
# -*- coding: utf-8 -*- """ Created on Mon Jan 29 13:00:53 2018 要批量下载ladsweb.modaps.eosdis.nasa.gov上的数据前从cvs导出、合成下载链接 尝试PEP8风格 @author: 墨大宝 """ import pandas as pd def main(CSVPATH): # 在cmd运行的Python中正常传入字符串,但是在Ipython控制台会多加一层单引号 if CSVPATH.startswith("'"): CSVPATH = CSVPATH[1 : -1] TXTPATH = CSVPATH[:-4] + '导出.txt' # 第2列是下载链接的部分,第1、3列无关 links = pd.read_csv(CSVPATH, engine='python', usecols=[1], header=None, skiprows=1) # links = links.values.tolist() # links= ['https://ladsweb.modaps.eosdis.nasa.gov' + y for x in links # for y in x] [links] = links.values.transpose().tolist() # 比上一种方法简洁 # 补全下载链接 links= ['https://ladsweb.modaps.eosdis.nasa.gov' + x for x in links] with open(TXTPATH, 'w') as txtFile: txtFile.write('\n'.join(links)) print('\n\n完成!\n导出的下载链接文件与.csv同路径') if __name__ == '__main__': print('\n**从cvs导出、合成ladsweb.modaps.eosdis.nasa.gov的下载链接**\n') CSVPATH = input('请将从ladsweb.modaps.eosdis.nasa.gov上导出的.csv文件' + '拖拉至此(或者输入其绝对路径):\n') main(CSVPATH) else: raise ImportError('滚滚滚!')
不得不承认,整个程序的思路其实很简单,就是提取出.csv文件的中间一列,简单处理后写入文本而已。所以这篇知识性的东西不多——但还是有的:
PEP8不建议在模块顶层赋值(小写的)变量,也不建议在函数中使用(大写的)常量,所以想严格按照PEP8的命名规范确实比较烦
将脚本主体处理到main函数中后,再用Spyder运行程序,主体中的变量将不在Variable explorer中显示——我早该想到的。所以再综合上一条,PEP8的部分推荐规范在科学计算领域可能不是很合理
pd.read_csv()读成块的文本数据很方便,但是在这篇中优势不是很明显,不用pandas直接把.csv文件当作普通文本用.readlines()读完按照逗号分割估计也不算麻烦,那样还照顾到没装pandas的电脑——为啥这会儿才想起来啊啊啊——就当练习使用pd.read_csv()好了,这里面一些参数还是有说道的
pd.read_csv()中engine=’python’功能更全,engine=’c’更快——文档中是这么说的,反正我碰到过好多次engine=’c’不好使必须用engine=’python’的情况了
第一个相对比较完整、规范的Python3程序,纪念一下
相关文章推荐
- [python]通达信历史日线数据解析转换为CSV文件进行存储
- Python批量下载网页中的表格存储到CSV文件中
- python解析csv文件 提取数据
- 网络编程总结(解析数据,下载文件,确认网络环境)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 解析.CSV文件中的数据并将其插入到数据库中代码
- 使用Python批量下载数据
- php中数据的批量导入(csv文件)
- 利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- Python_使用csv模块解析csv文件
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- php中数据的批量导入(csv文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python下paramiko模块学习之四:从远程主机批量下载文件到本机
- datagrid数据导出到excel文件给客户端下载的几种方法 (xls,csv,html)
- php中数据的批量导入(csv文件)
- 使用python中的urlretrieve下批量下载数据
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- Reachability 网络编程总结(解析数据,下载文件,确认网络环境)