我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
当前回答
你可以在一行中读取文件:
str = open('very_Important.txt', 'r').read()
请注意,这不会显式地关闭文件。
作为垃圾收集的一部分,CPython将在退出时关闭该文件。
但其他python实现不会。要编写可移植的代码,最好显式地使用with或关闭文件。短并不总是更好。参见https://stackoverflow.com/a/7396043/362951
其他回答
你可以用:
with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')
或者文件内容保证为一行
with open('data.txt', 'r') as file:
data = file.read().rstrip()
这可以使用read()方法来完成:
text_as_string = open('Your_Text_File.txt', 'r').read()
或者因为默认模式本身是'r'(读),所以简单地使用,
text_as_string = open('Your_Text_File.txt').read()
我很惊讶没有人提到splitlines()。
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
变量数据现在是一个列表,打印时是这样的:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
注意这里没有换行符(\n)。
在这一点上,听起来好像你想打印回控制台的行,这可以通过for循环实现:
for line in data:
print(line)
也许你可以试试这个?我在我的程序中使用这个。
Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()
我已经摆弄了一段时间,更喜欢将use read与rstrip结合使用。如果没有rstrip("\n"), Python会在字符串的末尾添加换行符,这在大多数情况下不是很有用。
with open("myfile.txt") as f:
file_content = f.read().rstrip("\n")
print(file_content)