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

ABC
DEF

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


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


当前回答

很难确切地说出你在追求什么,但像这样的东西应该让你开始:

with open ("data.txt", "r") as myfile:
    data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])

其他回答

试试下面的方法:

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

    sentences = data.split('\\n')
    for sentence in sentences:
        print(sentence)

注意:不移除\n。它只是为了查看文本,就像没有\n一样

with open("data.txt") as myfile:
    data="".join(line.rstrip() for line in myfile)

Join()将连接一个字符串列表,而不带参数的rstrip()将从字符串末尾删除空格,包括换行符。

f = open('data.txt','r')
string = ""
while 1:
    line = f.readline()
    if not line:break
    string += line

f.close()


print(string)

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

x

或打印(x)

或str (x)

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

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

很难确切地说出你在追求什么,但像这样的东西应该让你开始:

with open ("data.txt", "r") as myfile:
    data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])