GNSS潮汐参数数据下载
前提
GNSS数据库发送数据是通过邮件的形式,而从邮件中提取数据,生成txt文件,再一个一个转成需要使用的blq文件过于繁琐,因此撰写代码完成数据下载更新。记录一下过程中个人遇到的问题及其解决办法。
问题难点
- 如何获取邮箱权限?
- 数据中存在大量干扰项,如何提取关键信息(经纬度)?
- 如何实现文件的重命名?
解决办法
1.如何获取邮箱权限?
获取邮箱权限采取的是zmail库,实现并不困难,需要注意的点有两个:
1.读取邮件内容的实现是mail['content_text'][0]
而不是mail['content_text']
2.数据中存在着大量的’\r\n’,可采用writein.replace('\r\n', '\n')
对数据进行处理
2.如何提取关键信息?
这是节选的一个模块,可以看到我们命名时需要的是经纬度 102.0000和45.5000,这里介绍一种个人觉得比较巧妙的办法:
使用正则表达式,这个正则表达式将匹配一个或多个数字,然后是一个小数点,然后是一个或多个数字,python中正则表达式的应用对应的是re库。处理txt文件时,我们可以使用File.readlines()
逐行读取,然后对每一行进行如下处理,即可获得经纬度
matches = re.findall(r"\d+\.\d+", line)
lon=float(matches[0])
lat=float(matches[1])
3.如何实现文件的重命名
使用os的rename方法,如果目标文件已存在,则 rename 函数将覆盖该文件,个人感觉这是一种比较便捷方法。
import os
os.rename("/path/to/old_name.txt", "/path/to/new_name.txt")