Python实现txt文件指定十六进制值转十进制的代码问题排查
问题修复方案
原代码错误点
- 错误将
print()函数的返回值(固定为None)赋值给sd变量,后续调用int(sd,16)必然抛出类型错误 - 提取的十六进制字符串被存入列表
id,直接对列表做进制转换不符合int()方法的入参要求 - 硬编码切片
ln[9:13]兼容性差,若行内格式变化会提取到错误内容
修复后代码
with open("test.txt","r") as fi: for ln in fi: if ln.startswith("(10"): # 按空格分割行内容,取第三个元素就是目标十六进制值,再去掉末尾括号 hex_str = ln.split()[3].rstrip(")") dec = int(hex_str, 16) print(dec) # 仅需要第一行结果的话,拿到就可以直接退出循环 break
运行结果
输出值为29643,符合预期要求。
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

