Python 如何解析文件中的转义字符

1.txt 内容\r\n\x80 之类的
f = open(“1.txt”, “r”)
data = f.read()
print data
如何处理 data 能解析文件中的转义字符
Python 如何解析文件中的转义字符

9 回复

转义字符读进来本身默认是以转义字符呈现的哇~


这个问题很常见,处理文件里的转义字符(比如 \n, \t, \\)时,直接读出来的字符串是字面量,得用 encode().decode('unicode_escape') 来转义。

核心方法:用字符串的 encode() 方法把字符串转成 bytes,再用 'unicode_escape' 编解码器 decode() 回来。这个编解码器专门处理Python字面量里的转义序列。

举个例子,假设你有个 data.txt 文件,里面有一行内容是:Hello\nWorld\t!\\

# 读取文件内容(此时内容是字面量字符串)
with open('data.txt', 'r', encoding='utf-8') as f:
    raw_content = f.read().strip()  # 得到 "Hello\\nWorld\\t!\\\\"

print("原始字符串:", repr(raw_content))  # 输出: 'Hello\\nWorld\\t!\\\\'

# 关键步骤:解析转义字符
parsed_content = raw_content.encode().decode('unicode_escape')

print("解析后字符串:", repr(parsed_content))  # 输出: 'Hello\nWorld\t!\\'
print("打印效果:")
print(parsed_content)  # 输出:
# Hello
# World    !\

要点

  • repr() 函数用来显示字符串的原始表示,方便你看清转义字符。
  • 这个方法会把 \n 变成换行符,\t 变成制表符,\\ 变成单个反斜杠。
  • 注意文件路径和编码,根据你的实际情况调整。

如果文件里混合了普通文本和需要解析的转义序列,这个方法一视同仁,整个字符串都会处理。如果只想处理特定部分,得先拆分字符串再单独处理。

总结:用 encode().decode('unicode_escape') 来转义。

你的意思是在文本中 \n 是两个字符。可是你读入的时候希望读成一个衣服?

衣服 → 字符

好像只能替换- -

rb’abc\ncd’efg’.decode(‘unicode_escape’)

如果 \n 是存在文本中的两个字符,就不叫转义字符了。。
你直接说如何处理 形式 如 ‘\n’ ‘\x80’ ‘\r’ 的字符序列 为转义字符 就好了。。

回到顶部