我正在尝试从.gpx文件中提取特定数据。 所需的数据是&t; trkpt'和' ele',这是位置和海拔数据。 下面列出的代码几乎完全符合我的要求,但看起来很麻烦,我只需要数值数据。
gpx_list = []
gpx = open('G:\\14022705.gpx', 'r')
for line in gpx:
info = line.split(',')
if 'trkpt ' in line:
gpx_list.append(info)
print line
if 'ele' in line:
gpx_list.append(info)
print line
gpx_list_out = open('G:\\Position_Data2.csv', 'w')
for line in gpx_list:
gpx_list_out.write(line[0])
gpx_list_out.close()
输出示例:
['<trkpt lat="-42.6150634" lon="+147.4397831">']
['<ele>1.431</ele>']
相反,我希望它看起来像:
-42.6150634, +147.4397831, 1.431
全部在一行
任何有关实现这一目标的提示都将受到赞赏。我已经尝试了几个小时搞乱添加不同的代码,但未能达到预期的结果!
答案 0 :(得分:1)
尝试将此功能合并到您的代码中。正则表达式提取每行中的所有数字
import re
gpx_list = []
gpx = open('G:\\14022705.gpx', 'r')
gpx_list_out = open('G:\\Position_Data2.csv', 'w')
for line in gpx:
if 'trkpt ' in line:
print re.findall(r"[-+]?\d*\.\d+|\d+",line)
numerical_value=re.findall(r"[-+]?\d*\.\d+|\d+",line)
gpx_list_out.write(",".join(numerical_value))
gpx_list_out.close()