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

ABC
DEF

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


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


当前回答

我很惊讶没有人提到splitlines()。

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

变量数据现在是一个列表,打印时是这样的:

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

注意这里没有换行符(\n)。

在这一点上,听起来好像你想打印回控制台的行,这可以通过for循环实现:

for line in data:
    print(line)

其他回答

你试过这个吗?

x = "yourfilename.txt"
y = open(x, 'r').read()

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

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

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

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

你可以在一行中读取文件:

str = open('very_Important.txt', 'r').read()

请注意,这不会显式地关闭文件。

作为垃圾收集的一部分,CPython将在退出时关闭该文件。

但其他python实现不会。要编写可移植的代码,最好显式地使用with或关闭文件。短并不总是更好。参见https://stackoverflow.com/a/7396043/362951

from pathlib import Path   
line_lst = Path("to/the/file.txt").read_text().splitlines()

是获取文件所有行的最佳方法,'\n'已经被splitlines()剥离(它可以智能识别win/mac/unix行类型)。

但如果你想剥离每一行:

line_lst = [line.strip() for line in txt = Path("to/the/file.txt").read_text().splitlines()]

Strip()只是一个有用的示例,但是您可以按照自己的意愿处理您的行。

最后,你只想要连接的文本?

txt = ''.join(Path("to/the/file.txt").read_text().splitlines())

这是一个一行的,可复制粘贴的解决方案,也关闭文件对象:

_ = open('data.txt', 'r'); data = _.read(); _.close()