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

伺服驱动器TXT原始位置电压数据手动格式化整理方案咨询

规整伺服驱动器TXT反馈数据的解决方案

手动整理这种混乱的伺服反馈数据确实头大——拆分的数值、乱入的错误码、合并的字段,想想都累。不过既然你已经明确了位置数据(12字符,含小数点)和电压数据(9字符,含小数点)的固定格式,咱们可以用自动化脚本+正则匹配的方式高效解决,比手动快N倍。

下面是具体的处理思路和可直接运行的Python脚本:


核心处理逻辑

  1. 清理无效内容:先把所有!FFxx这类错误码彻底移除,再消除所有空白字符(空格、换行),把所有有效字符拼接成一个长字符串,解决数值拆分的问题。
  2. 逐字符匹配提取:从左到右扫描长字符串,优先匹配12位的位置数据(因为长度更长,避免和电压数据误判),匹配成功就输出并跳过对应长度;如果不匹配,再尝试9位的电压数据;都不符合就跳过一个字符(处理极端拆分的情况)。

可运行的Python脚本

这个脚本可以直接读取你的原始TXT文件,输出规整后的每行一个数据的文件:

import re

def clean_servo_data(input_file, output_file):
    # 读取原始文件内容
    with open(input_file, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 第一步:移除所有!FF开头的错误码(比如!FF10、!FF02)
    content = re.sub(r'!FF\d+', '', content)
    
    # 第二步:移除所有空白字符,把所有有效字符连在一起
    content = re.sub(r'\s+', '', content)
    
    # 第三步:逐字符扫描,提取符合格式的位置和电压数据
    result = []
    i = 0
    total_length = len(content)
    
    while i <= total_length - 9:  # 至少保留9位用于匹配电压数据
        # 优先尝试匹配12位的位置数据(必须包含且仅包含一个小数点)
        if i + 12 <= total_length:
            candidate = content[i:i+12]
            # 验证格式:数字+小数点+数字
            if candidate.count('.') == 1 and re.match(r'^\d+\.\d+$', candidate):
                result.append(candidate)
                i += 12
                continue
        # 尝试匹配9位的电压数据
        candidate = content[i:i+9]
        if candidate.count('.') == 1 and re.match(r'^\d+\.\d+$', candidate):
            result.append(candidate)
            i += 9
            continue
        # 都不匹配则跳过一个字符,处理拆分的零散字符
        i += 1
    
    # 将结果写入新文件,每行一个数据
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write('\n'.join(result))

# 替换成你的实际文件路径
clean_servo_data('原始数据.txt', '规整后数据.txt')

脚本使用说明

  1. 把你的原始TXT文件重命名为原始数据.txt,和脚本放在同一个文件夹里。
  2. 运行脚本,会生成一个规整后数据.txt,里面就是每行一个位置或电压数据的规整内容。
  3. 如果你的文件编码不是utf-8,可以把encoding='utf-8'改成encoding='gbk'或者其他对应编码。

手动整理的应急技巧(如果暂时不想用脚本)

如果只是少量数据需要处理,可以用文本编辑器(比如Notepad++)的正则功能快速处理:

  • 第一步:按Ctrl+H打开替换窗口,查找框输入!FF\d+,替换框为空,点击「全部替换」移除所有错误码。
  • 第二步:查找框输入\s+,替换框为空,点击「全部替换」消除所有空白字符。
  • 第三步:用列编辑功能,手动按12位、9位的长度拆分字符串,每行粘贴一个符合格式的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:53:43