【问题标题】:How do I maintain the format of a text file when reading a text file through Python?通过 Python 读取文本文件时如何保持文本文件的格式?
【发布时间】:2016-07-28 11:05:27
【问题描述】:

我有一个 .txt 文件,其中包含如下所示的项目列表:

BLAH
ONE
TWO
THREE
FOUR

我目前正在使用 Python 读取该 .txt 文件并打印出文本行。我遇到的问题是打印的行显示\n 的换行符和逗号一起。当我从 .txt 文件中打印数据时,它看起来像这样:

BLAH \n, ONE \n, TWO \n, THREE \n, FOUR

我尝试使用.replace("\n,", "") 来尝试至少摆脱不需要的字符,但这似乎不起作用。如何通过 Python 命令从 .txt 文件中保持相同的格式?

根据要求,这是我的代码:

file = open("plstemp.txt", "r")
      abc=str(file.readlines())
      wow = abc.replace("[", "").replace("]", "").replace("'", "")
      print(wow)
      file.close()

我想要的输出如下:

BLAH
ONE
TWO
THREE
FOUR

【问题讨论】:

  • 当您将其作为字符串读取时,您实际上是在维护格式,因为这正是那些 \n 向您指示的内容。然而,从它的外观来看,逗号表示您可能为此使用了 readlines() ,这会将每一行作为一个项目放入列表中。请显示您的代码并提供您期望的代码的确切输出。
  • 我已使用您要求的信息编辑了我的帖子。

标签: python text formatting


【解决方案1】:

正如怀疑的那样,您正在使用readlines,它将为您提供一个列表。列表中的每个项目都是文件中的一行。您不需要完全替换“[”。你需要意识到你实际上有一个列表。

所以,执行file.readlines(),您将拥有:

['BLAH\n', 'ONE\n', 'TWO\n', 'THREE\n', 'FOUR\n']

如果您改用file.read() 并打印出结果:

BLAH
ONE
TWO
THREE
FOUR

请记住,您仍然有一个 '\n',因为您实际上需要它来获得上面的输出,因为 '\n' 实际上是一个特殊字符,意思是“换行符”。

所以,要重写你的代码,你可以简单地做(你不需要指定“r”,因为它默认是“r”):

file = open("plstemp.txt")
abc=file.read()
file.close()
print(abc)

【讨论】:

  • 完美,非常感谢。我是 Python 新手,这对我以后非常有用。
【解决方案2】:

readlines 将文件的行作为列表返回,然后将str 函数应用于列表,它将列表转换为字符串;这就是为什么你会得到不需要的[]

如果您只是想读入整个文件,您可以执行以下操作

f = open("plstemp.txt", "r")
wow = f.read()
f.close()
print(wow)

还要避免使用file作为变量名,因为它是python的内置类型。

【讨论】:

    【解决方案3】:

    好的,现在我看到你的代码更清楚了:)

    readlines() 以及 for 循环将返回一个列表。您在我认为不起作用的列表上使用str() 函数。 我认为 idjaw 的答案是正确的。你也可以试试:

    file = open("plstemp.txt", "r")
          abc=file.readlines()
          wow = ",".join(abc) #joining a list into a string by commas as a separator
          print(wow)
          file.close()
    

    【讨论】:

    • 请注意。您的输出将是:'BLAH\n,ONE\n,TWO\n,THREE\n,FOUR'
    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 2013-08-10
    • 2017-05-19
    • 2017-04-26
    • 1970-01-01
    • 2013-08-19
    • 2012-11-25
    • 1970-01-01
    相关资源
    最近更新 更多