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

ABC
DEF

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


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


当前回答

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

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

其他回答

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

f.close()


print(string)

要使用Python删除换行符,可以使用字符串的replace函数。

这个例子删除了所有3种类型的换行符:

my_string = open('lala.json').read()
print(my_string)

my_string = my_string.replace("\r","").replace("\n","")
print(my_string)

示例文件为:

{
  "lala": "lulu",
  "foo": "bar"
}

你可以尝试使用这个回放场景:

https://repl.it/repls/AnnualJointHardware

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

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

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

['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']

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

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

for line in data:
    print(line)
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('t.txt') as f:
  s = " ".join([l.rstrip("\n") for l in f])