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

如何用Python将行式十六进制数据转为连续编号的参数格式?

问题

现有input.txt文件,内容为随机十六进制数据,格式如下:

20 3h 4f 57 56 37
4a 2d 33 45 10 2a
23 47 4c

需要将其转换为output.txt,格式要求每个十六进制值对应一行hform_paramXX = 值,编号从00开始连续递增,示例如下:

hform_param00 = 20
hform_param01 = 3h
hform_param02 = 4f
...
hform_param05 = 37
hform_param06 = 4a 
...
hform_param12 = 23
hform_param13 = 47 
hform_param14 = 4c

曾尝试使用Pandas DataFrame,但因输入结构不规则(每行元素数量不同)无法适配,寻求解决方案。

解决方案

不需要用Pandas,直接用Python基础文件操作即可完成,步骤如下:

  1. 打开input.txt逐行读取内容
  2. 将每行内容按空格拆分,过滤掉空字符串(处理换行或多余空格)
  3. 遍历所有拆分后的十六进制值,按顺序生成带两位编号的目标行
  4. 将所有目标行写入output.txt

代码示例

# 初始化编号计数器
count = 0
output_lines = []

# 读取输入文件
with open('input.txt', 'r') as f_in:
    for line in f_in:
        # 拆分每行的十六进制值,过滤空内容
        hex_values = [val.strip() for val in line.split() if val.strip()]
        for val in hex_values:
            # 格式化编号为两位数字,拼接目标行
            output_line = f'hform_param{count:02d} = {val}'
            output_lines.append(output_line)
            count += 1

# 写入输出文件
with open('output.txt', 'w') as f_out:
    f_out.write('\n'.join(output_lines))

说明

  • 代码会自动处理每行不同长度的情况,无需提前统一格式
  • count:02d确保编号始终是两位数字(00、01...14)
  • 过滤空字符串避免处理换行产生的无效内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:02:44