我试图用一些 \x python内部。
\x
当我使用:
print '\x00\x00\xFF\x00'
效果很好,可以打印 � . 但是当我尝试格式化字符串时:
�
print '\x{}\x{}\x{}\x{}'.format('00','00','FF','00')
我发现这个错误:
ValueError: invalid \x escape
当我像这样避开反斜杠时的问题是:
print '\\x{}\\x{}\\x{}\\x{}'.format('00','00','FF','00')
它打印:
\x00\x00\xFF\x00
而不是一点点 � 比如非格式化字符串。
chr 和 bytearray 看起来很有趣,例如:
chr
bytearray
print chr(0x00),chr(0x00),chr(0xFF),chr(0x00) 或 print bytearray([0x00, 0x00, 0xFF, 0x00])
print chr(0x00),chr(0x00),chr(0xFF),chr(0x00)
print bytearray([0x00, 0x00, 0xFF, 0x00])
打印 � ,但当我尝试格式化它们时,会得到一个语法错误。
我发现了一些有趣的帖子,比如:
但我还是被困住了。。。
如何打印带格式的字符串 \x 在…内
(我正在使用python 2.7,但我可以使用其他版本。)
非常感谢。
目标是创建一个格式字符串,该字符串将打印字符,给定对应于unicode代码点的十六进制值的字符串表示形式,因此如下所示
for var1 in 'FF','00','38': print '\x{}\x{}\x{}\x{}'.format(var1,'00','FF','00')
将输出
�� � 8�
int 内置函数,然后使用 c 字符串格式代码,用于将整数值转换为相应的unicode字符。
int
c
for v in ('ff', '00', '38'): print '{:c}{:c}{:c}{:c}'.format(*[int(x, 16) for x in [v, '00', 'ff', '00']]) �� � 8�
从 docs :
c :字符。打印前将整数转换为相应的unicode字符。