如何用Python编写一行命令行工具实现十六进制转十进制
仅Python环境下将十六进制输入转为十进制的简单方案
如果你在只有Python、没有bc工具的嵌入式环境里,需要把标准输入的十六进制数转成十进制,这个极简的Python单行命令就能完美解决问题:
echo "ff" | python -c "print(int(input().strip(), 16))"
运行后会直接输出255,完全符合你想要的效果。
为什么这么写?
input().strip():读取标准输入的内容,同时去掉首尾的换行符、空格,避免因为输入的格式小问题导致解析出错int(..., 16):把读取到的字符串按照十六进制规则转换成十进制整数print():把转换后的结果输出到标准输出,方便后续管道处理或者直接查看
额外小提示
- 这个命令同样支持带
0x前缀的十六进制输入,比如echo "0xff" | python -c "print(int(input().strip(), 16))"也会输出255 - 如果输入的内容不是有效的十六进制数,命令会抛出
ValueError,如果你的场景需要处理无效输入,可以稍微扩展代码,比如加个异常捕获:echo "invalid" | python -c "try: print(int(input().strip(),16)) except ValueError: print('Invalid hex input')"
内容的提问来源于stack exchange,提问作者ishahak
相关产品推荐
相关产品推荐

