Python chr未正确显示

2024-09-29 19:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

当我有一个类似"Hi \\x00"的字符串时,当我尝试使用类似

thatstring = thatstring.replace("\\x00",chr(0))

然后保存到文件中

f = open("test.txt","r+")
f.seek(0)
f.write(thatstring)
f.truncate()
f.close()

在文件中,它将显示为“Hi\NULL”(NULL表示chr)

我想问题是我在r+模式下写入文件,而不是br+,所以它会在chr之前放一个\但我不能使用br+,因为它必须以“字节格式”写入文件,而且我的字符串必须包含字母和“特殊chr”。你知道吗

我正在使用Python3.x

我怎样才能避免这种情况?你知道吗


Tags: 文件字符串testbrtxtseekopenhi
1条回答
网友
1楼 · 发布于 2024-09-29 19:32:12

文件中的文本是文本\\x00,因此有两个反斜杠。然后,您的代码只替换其中一个反斜杠:

>>> filecontents = r'Hi \\x00'  # raw string literal to disable escape sequences
>>> list(filecontents.partition(' ')[-1])  # only the part after the space
['\\', '\\', 'x', '0', '0']
>>> filecontents.replace("\\x00", chr(0))
'Hi \\\x00'
>>> list(_.partition(' ')[-1])  # last result, everything after the space
['\\', '\x00']

文件内容不受Python的string-literal转义扩展的约束,因此这里不需要转义。你知道吗

替换两个反斜杠,或者在文件中只使用一个反斜杠。用另一个原始字符串文字替换这两个字符串最简单:

thatstring = thatstring.replace(r"\\x00", chr(0))

相关问题 更多 >

    热门问题