我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
当前回答
这可以使用read()方法来完成:
text_as_string = open('Your_Text_File.txt', 'r').read()
或者因为默认模式本身是'r'(读),所以简单地使用,
text_as_string = open('Your_Text_File.txt').read()
其他回答
你可以用:
with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')
或者文件内容保证为一行
with open('data.txt', 'r') as file:
data = file.read().rstrip()
正则表达式也适用:
import re
with open("depression.txt") as f:
l = re.split(' ', re.sub('\n',' ', f.read()))[:-1]
print (l)
['I', 'feel', 'empty', 'and', 'dead', 'inside']
Oneliner:
列表:" . join ([line.rstrip(“\ n”)在开放(file.txt)]) 生成器:"".join((line.rstrip('\n') for line in open('file.txt')))
列表比生成器快,但内存更重。生成器比列表慢,而且内存更轻,比如遍历行。在"".join()的情况下,我认为两者都应该工作得很好。.join()函数应该被删除,分别获得列表或生成器。
注意:close() /关闭文件描述符可能不需要
我很惊讶没有人提到splitlines()。
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
变量数据现在是一个列表,打印时是这样的:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
注意这里没有换行符(\n)。
在这一点上,听起来好像你想打印回控制台的行,这可以通过for循环实现:
for line in data:
print(line)
这是一个一行的,可复制粘贴的解决方案,也关闭文件对象:
_ = open('data.txt', 'r'); data = _.read(); _.close()