通过Python读取文本文件时如何维护文本文件的格式?

时间:2016-04-07 13:54:19

标签: python text formatting

我有一个.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

3 个答案:

答案 0 :(得分:2)

如您所料,您正在使用readlines,它会为您提供一个列表。列表中的每个项目都是文件中的一行。您不需要完全替换' ['。你需要在这里意识到你实际上有一个列表。

所以,做file.readlines(),你会得到:

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

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

BLAH
ONE
TWO
THREE
FOUR

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

所以,要重新编写代码,你可以简单地做(你不需要指定&#34; r&#34;因为它是&#34; r&#34;默认情况下):< / p>

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

答案 1 :(得分:0)

readlines以列表的形式返回文件的行,然后将str函数应用于列表,该列表将列表转换为字符串;这就是您收到不受欢迎的[]

的原因

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

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

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

答案 2 :(得分:0)

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

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()