You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python读取文本文件并提取gps_alt、lat、lon值?

提取文本文件指定字段的Python实现

假设你的文本文件中每行是类似 key: value 或 key=value 的键值对格式,以下两种方法可提取gps_alt、lat和lon对应的值:

方法一:逐行读取匹配

适用于格式规整的文本,逻辑简单直接:

# 指定要提取的目标字段
target_fields = {'gps_alt', 'lat', 'lon'}
extracted_data = {}

# 打开文件(替换为你的实际文件路径)
with open('your_file.txt', 'r', encoding='utf-8') as file:
    for line in file:
        line = line.strip()
        if not line:
            continue
        # 按分隔符拆分键值,这里假设是冒号,可根据实际调整为等号
        if ':' in line:
            key, val = line.split(':', 1)
            key = key.strip()
            val = val.strip()
            if key in target_fields:
                # 尝试转为数值类型,保留原始字符串如果转换失败
                try:
                    extracted_data[key] = float(val)
                except ValueError:
                    extracted_data[key] = val

print(extracted_data)

方法二:正则表达式匹配

如果文件格式复杂(比如关键字和值的位置不固定),正则表达式更灵活:

import re

target_fields = ['gps_alt', 'lat', 'lon']
# 构建匹配模式,支持冒号或等号作为分隔符
regex_pattern = re.compile(r'(?P<key>' + '|'.join(target_fields) + r')\s*[:=]\s*(?P<value>.+?)\s*(?:$|,)')
extracted_data = {}

with open('your_file.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    # 查找所有匹配项
    for match in regex_pattern.finditer(content):
        key = match.group('key')
        val = match.group('value').strip()
        try:
            extracted_data[key] = float(val)
        except ValueError:
            extracted_data[key] = val

print(extracted_data)

关键提示

  • 把代码中的your_file.txt替换成你实际的文件路径
  • 根据文件实际的键值分隔符(冒号/等号)调整代码中的分隔符或正则模式
  • 如果值包含空格,需要修改正则表达式的value匹配逻辑(比如把\S+换成.+?并指定终止符)

内容的提问来源于stack exchange,提问作者JaredCusick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:15:28