我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
当前回答
Oneliner:
列表:" . join ([line.rstrip(“\ n”)在开放(file.txt)]) 生成器:"".join((line.rstrip('\n') for line in open('file.txt')))
列表比生成器快,但内存更重。生成器比列表慢,而且内存更轻,比如遍历行。在"".join()的情况下,我认为两者都应该工作得很好。.join()函数应该被删除,分别获得列表或生成器。
注意:close() /关闭文件描述符可能不需要
其他回答
要使用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
f = open('data.txt','r')
string = ""
while 1:
line = f.readline()
if not line:break
string += line
f.close()
print(string)
很难确切地说出你在追求什么,但像这样的东西应该让你开始:
with open ("data.txt", "r") as myfile:
data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
这里有四个代码供您选择:
with open("my_text_file.txt", "r") as file:
data = file.read().replace("\n", "")
or
with open("my_text_file.txt", "r") as file:
data = "".join(file.read().split("\n"))
or
with open("my_text_file.txt", "r") as file:
data = "".join(file.splitlines())
or
with open("my_text_file.txt", "r") as file:
data = "".join([line for line in file])
你可以把它压缩成一两行代码!!
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