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

ABC
DEF

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


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


当前回答

我已经摆弄了一段时间,更喜欢将use read与rstrip结合使用。如果没有rstrip("\n"), Python会在字符串的末尾添加换行符,这在大多数情况下不是很有用。

with open("myfile.txt") as f:
    file_content = f.read().rstrip("\n")
    print(file_content)

其他回答

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

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

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

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

在Python 3.5或更高版本中,使用pathlib可以将文本文件内容复制到一个变量中,并在一行中关闭文件:

from pathlib import Path
txt = Path('data.txt').read_text()

然后你可以使用str.replace删除换行符:

txt = txt.replace('\n', '')

试试下面的方法:

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

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

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

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

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

这也可以解决问题。

你可以把它压缩成一两行代码!!

content = open('filepath','r').read().replace('\n',' ')
print(content)

如果你的文件是:

hello how are you?
who are you?
blank blank

python输出

hello how are you? who are you? blank blank