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

ABC
DEF

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


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


当前回答

file = open("myfile.txt", "r")
lines = file.readlines()
str = ''                                     #string declaration

for i in range(len(lines)):
    str += lines[i].rstrip('\n') + ' '

print str

其他回答

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

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

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

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

如此: 将文件更改为:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

然后:

file = open("file.txt")
line = file.read()
words = line.split()

这将创建一个名为words的列表,等于:

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

去掉了"\n"。要回答括号阻碍你的问题,只需这样做:

for word in words: # Assuming words is the list above
    print word # Prints each word in file on a different line

Or:

print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space

这将返回:

LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE

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

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

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

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

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

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

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

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

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

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