python - 将十六进制值存储为整数
问题描述
我目前正在使用 python docx,例如它需要十六进制值来格式化字体颜色
font.color.rgb = RGBColor(0x70, 0xad, 0x47)
但是,我需要将参数存储RGBColor
在一个变量中,准确地说是一个字典,但是当您将一个十六进制值存储在一个变量中时,它会将其格式化为一个 int。例子:
code = (0x70, 0xad, 0x47)
print(code)
返回:(112, 173, 71)
并使用该hex()
函数存储它会将其格式化为str
.
code = (hex(0x70), hex(0xad), hex(0x47))
print(code)
返回:('0x70', '0xad', '0x47')
并且RGBColor
操作员将不接受字符串,并且我无法将这些字符串重新格式化为 anint
因为我收到错误ValueError: invalid literal for int() with base 10: '0x70'
总之,我如何存储一个十六进制值,例如0x70, 0xad, 0x47
一个整数,然后我可以将其输入到RGBColor
操作员中?
解决方案
font.color.rgb = RGBColor(112, 173, 71)
产生与以下相同的结果:
font.color.rgb = RGBColor(0x70, 0xad, 0x47)
该0x7f
格式只是int
值的另一种 Python 文字形式。只有一种int
,只有多种方式可以将相同的值表示为文字。有关这些选项的完整细分,请参阅有关数字文字的 Python 文档:
https ://docs.python.org/3/reference/lexical_analysis.html#numeric-literals
请注意,您还可以使用:
font.color.rgb = RGBColor.from_string("70ad47")
如果这对你更方便。
https://python-docx.readthedocs.io/en/latest/api/shared.html#docx.shared.RGBColor.from_string
推荐阅读
- macos - Ionic Build on Mac for Android 模拟器抛出 Kotlin 错误
- java - 在递归中打印 queue.peek() 打印不相关的值
- c# - 带有 .NET 标准库的 Xamarin.Android 上的 JsonSerializationException“找不到构造函数”
- asp.net-core-2.0 - 默认的 .net 核心控制器如何路由“值”?
- r - 按参与者 ID 聚合数据集
- hadoop - 如何通过 API 传递参数以供 Oozie 中的 shell 脚本获取?
- java - 应用程序停止工作:单击列表选项时猜词游戏停止工作
- visual-c++ - Visual Stidio 2015 # pragma comment (linker, "/EXPORT options
- scala - 构建一个大任务计算与同步执行几个步骤相比如何?
- c# - 在特定日期使程序崩溃