You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python从文本文件导入字符串到列表时会出现\n转义异常?

问题原因

  • 首先你观察到的\\n不是导入过程新增的字符:如果你直接打印整个列表,Python默认输出的是列表元素的repr(原始表示形式),会自动对字符串里的反斜杠做转义展示,不代表实际存储的内容。你可以先单独打印单条题目验证:print(questions[0]),如果能正常换行就说明没有问题。
  • 如果单独打印还是显示\n字符,说明你写入文本文件时,存的是字面意义的\和n两个字符,不是实际的换行控制符。

解决方法

方案1(推荐):修改题目存储格式

直接在文本文件中写实际换行,不要手动输入\n,questions.txt示例格式:

1. What is seven squared?
(a) 47
(b) 49
(c) 59

2. What is the square root of 121?
(a) Nine
(b) Ten
(c) Eleven

修改导入代码,按空行分割单道题目:

with open("questions.txt", encoding="utf-8") as file_in:
    content = file_in.read()
    # 按两道题之间的空行分割,过滤空内容
    questions = [q.strip() for q in content.split("\n\n") if q.strip()]

这种方式更直观,后续新增修改题目也不需要手动写转义字符。

方案2:不修改现有文件,导入时做转义处理

如果不想改动现有存储了字面\n的文本文件,可以在读入后对字符串做转义解析:

with open("questions.txt", encoding="utf-8") as file_in:
    questions = []
    for line in file_in:
        # 将字面转义字符转换为实际控制符
        processed = line.encode("utf-8").decode("unicode_escape").strip()
        if processed:
            questions.append(processed)

验证

处理完成后执行print(questions[0])即可看到符合预期的换行格式。

内容的提问来源于stack exchange,提问作者Ben Darvill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:54:02