我有一个文本文件,看起来像:

ABC
DEF

我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?


有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。


当前回答

with open(player_name, 'r') as myfile:
 data=myfile.readline()
 list=data.split(" ")
 word=list[0]

这段代码将帮助您读取第一行,然后使用列表和分割选项,您可以将第一行字由空格分隔,以存储在列表中。

这样你就可以轻松地访问任何单词,甚至将它存储在字符串中。

你也可以用for循环来做同样的事情。

其他回答

这可以使用read()方法来完成:

text_as_string = open('Your_Text_File.txt', 'r').read()

或者因为默认模式本身是'r'(读),所以简单地使用,

text_as_string = open('Your_Text_File.txt').read()

要将所有行连接成字符串并删除新行,我通常使用:

with open('t.txt') as f:
  s = " ".join([l.rstrip("\n") for l in f]) 

我觉得没有人回答过你问题的[]部分。当您将每一行读入变量时,因为在您将\n替换为"之前有多行,您最终创建了一个列表。如果你有一个变量x,把它打印出来

x

或打印(x)

或str (x)

您将看到带括号的整个列表。如果你调用数组中的每个元素

x [0] 然后省略括号。如果你使用str()函数,你将只看到数据而不是“either”。 str (x [0])

您还可以剥离每一行并连接成最终字符串。

myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
    data = data + line.strip();

这也可以解决问题。

你可以用:

with open('data.txt', 'r') as file:
    data = file.read().replace('\n', '')

或者文件内容保证为一行

with open('data.txt', 'r') as file:
    data = file.read().rstrip()