【Python 常用脚本及命令系列 6 -- python 读取C文件中数组中的数据】

本文介绍了如何使用Python读取C文件中的十六进制数组数据,通过正则表达式提取并转换为整数列表,以便于处理。
摘要由CSDN通过智能技术生成

python 读取C文件中数组中的数据

例如可以使用 python 将 test.c 文件中数组:

 unsigned short image[] = { 0x125, 0x1230x88, 0x99  }

中的所有数据生成到一个列表 list_num 中,并将其打印出来。

代码如下:

import re

# 读取C源文件并提取数组数据 
with open('test.c', 'r') as file: 
	c_content = file.read()

# 使用正则表达式查找十六进制数组(考虑空格和换行)
match = re.search(r'unsigned\s+short\s+image\[\]\s*=\s*\{([^}]+)\}', c_content)
	if not match: 
		raise ValueError("Array not found in C file.")

# 提取数组,去除空格,并按逗号分割
array_str = match.group(1).replace(',', ',') # 将中文逗号替换为英文逗号 
hex_numbers = array_str.split(',')

# 把十六进制字符串转换成整数并存储到列表 
list_num = [int(hex_num.strip(), 16) for hex_num in hex_numbers if hex_num.strip()]

# 打印列表 
print(list_num)

当你运行这个脚本时,它会读取名为test.c的文件,查找unsigned short image[]数组定义,然后提取其中的十六进制数,转换成整数,并打印出来。

请确保test.c文件在你的Python脚本可以访问的地方,或者提供完整的路径来定位该文件。此外,如果文件中含有中文逗号,脚本会将其替换为英文逗号以确保正确分割数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公讲 ARM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值