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

Python中无法将文本文件读取为指定格式的二维数组

嘿,我来帮你搞定这个Python处理十六进制文本转二维数组的需求!咱们一步步来实现,保证输出完全符合你要的格式:

实现方案与完整代码

首先,咱们先明确核心需求:读取包含两个空格分隔的长十六进制字符串的文本文件,将每个字符串拆分为单个十六进制字符包裹成单元素子数组的结构,最终组合成三层嵌套的二维数组。

1. 读取并预处理文件内容

首先用Python内置的文件操作读取文本,同时去除首尾的空白字符(比如换行符、多余空格):

# 替换成你的文本文件路径
file_path = "hex_data.txt"

with open(file_path, 'r') as f:
    # 读取内容并去除首尾空白
    raw_content = f.read().strip()

2. 分割出两个独立的十六进制字符串

文本里的两个目标字符串是用空格分隔的,直接用split()方法就能拆分:

# 分割为两个十六进制长字符串
hex_str_list = raw_content.split()
# 此时hex_str_list会是:
# ['7ee0c0d15fe800000f80202278e0c0f1', '00007ee0c0d15fc000000f802022c0f1']

3. 转换为目标格式的二维数组

遍历每个十六进制字符串,把每个字符单独包裹成一个单元素数组,再把这些小数组收集成一个大数组,最后把两个大数组放到最外层数组里:

# 生成目标格式的二维数组
result = []
for hex_str in hex_str_list:
    # 对每个字符,生成[char]格式的子数组,再组合成一个数组
    sub_array = [[char] for char in hex_str]
    result.append(sub_array)

整合后的完整代码

把上面的步骤整合起来,写成一个可复用的函数:

def convert_hex_file_to_2d_array(file_path):
    with open(file_path, 'r') as f:
        raw_content = f.read().strip()
    hex_str_list = raw_content.split()
    # 用列表推导式简化写法
    return [[[char] for char in s] for s in hex_str_list]

# 调用示例
final_output = convert_hex_file_to_2d_array("hex_data.txt")
print(final_output)

运行这段代码后,输出结果就完全和你要求的一致:

[[['7'], ['e'], ['e'], ['0'], ['c'], ['0'], ['d'], ['1'], ['5'], ['f'], ['e'], ['8'], ['0'], ['0'], ['0'], ['0'], ['0'], ['f'], ['8'], ['0'], ['2'], ['0'], ['2'], ['2'], ['7'], ['8'], ['e'], ['0'], ['c'], ['0'], ['f'], ['1']], [['0'], ['0'], ['0'], ['0'], ['7'], ['e'], ['e'], ['0'], ['c'], ['0'], ['d'], ['1'], ['5'], ['f'], ['c'], ['0'], ['0'], ['0'], ['0'], ['0'], ['0'], ['f'], ['8'], ['0'], ['2'], ['0'], ['2'], ['2'], ['c'], ['0'], ['f'], ['1']]]

小提示

如果你的文本文件里的两个字符串是用换行符分隔的,只需要把split()改成split('\n')就能正常处理啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:55:47