如何使用gpxpy为缺失metadata的GPX文件添加name和desc标签
用gpxpy为GPX文件添加缺失的段
gpxpy对GPX结构的封装逻辑很直接,通过操作GPX对象的metadata属性就能补全缺失的
- 解析目标GPX文件后,检查
gpx.metadata是否为None(即原文件无metadata段) - 若不存在,实例化
gpxpy.gpx.GPXMetadata对象并赋值给gpx.metadata - 直接给
gpx.metadata.name和gpx.metadata.description设置所需内容 - 调用
gpx.to_xml()生成修改后的GPX内容,保存回文件
完整代码示例
import gpxpy from gpxpy.gpx import GPXMetadata def add_metadata_to_gpx(gpx_file_path, gpx_name, gpx_desc): # 读取并解析GPX文件 with open(gpx_file_path, 'r', encoding='utf-8') as file: gpx = gpxpy.parse(file) # 初始化metadata(如果不存在的话) if not gpx.metadata: gpx.metadata = GPXMetadata() # 设置name和description gpx.metadata.name = gpx_name gpx.metadata.description = gpx_desc # 保存修改后的GPX文件 with open(gpx_file_path, 'w', encoding='utf-8') as file: file.write(gpx.to_xml()) # 调用示例:替换为你的文件路径和内容 add_metadata_to_gpx("target.gpx", "Cubieres-St.Paul", "Export from GpsPrune")
关于你之前的提取代码
你写的gpxinfo函数无需修改——gpxpy的GPX类会自动将自身的name、description属性代理到metadata的对应字段上,所以不管原文件有没有metadata段,都能正常提取内容。
内容的提问来源于stack exchange,提问作者WolfgangR
相关产品推荐
相关产品推荐

