将十六进制值存储为整数

时间:2020-09-20 13:11:52

标签: python hex python-docx

我目前正在使用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运算符将不接受字符串,并且由于出现错误int

,因此无法将这些字符串重新格式化为ValueError: invalid literal for int() with base 10: '0x70'

在夏季,如何存储十六进制值(例如0x70, 0xad, 0x47作为整数,然后可以将其输入RGBColor运算符中?

1 个答案:

答案 0 :(得分:4)

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