【发布时间】:2020-04-15 14:07:54
【问题描述】:
我有人帮助解决了之前的问题,将十六进制转换为字符串,但我希望输出的字符串用 ' 包围
所以它返回'I0KB' 而不仅仅是I0KB。
我有什么:
with open('D:\new 4.txt', 'w') as f:
f.write('if not (GetItemTypeId(GetSoldItem())==$49304B42) then\n')
def hex_match_to_string(m):
return ''.join([chr(int(m.group(1)[i:i+2], 16)) for i in range(0, len(m.group(1)), 2)])
# ...
line = re.sub(r'\$((?:\w\w\w\w\w\w\w\w)+)', hex_match_to_string, line)
file_out.write(line)
输出:
如果不是 (GetItemTypeId(GetSoldItem())==I0KB) 那么
但我希望它输出
如果不是 (GetItemTypeId(GetSoldItem())=='I0KB') 那么
并使用
def hex_match_to_string(m):
return ''.join(',[chr(int(m.group(1)[i:i+2], 16)) for i in range(0, len(m.group(1)), 2)],')
...尽管我读到 join(a,b,c) 是组合字符串的方式,但还是给了我一个语法错误。
在此先感谢您的帮助,抱歉,我不知道应该是什么简单的任务。
【问题讨论】:
标签: python-3.x