我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
我有一个文本文件,看起来像:
ABC
DEF
我怎么能把文件读入一个单行字符串没有换行符,在这种情况下创建一个字符串'ABCDEF'?
有关将文件读入行列表,但从每行中删除末尾换行字符的操作,请参见如何读取不带换行符的文件?。
当前回答
如此: 将文件更改为:
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
其他回答
我觉得没有人回答过你问题的[]部分。当您将每一行读入变量时,因为在您将\n替换为"之前有多行,您最终创建了一个列表。如果你有一个变量x,把它打印出来
x
或打印(x)
或str (x)
您将看到带括号的整个列表。如果你调用数组中的每个元素
x [0] 然后省略括号。如果你使用str()函数,你将只看到数据而不是“either”。 str (x [0])
这里有四个代码供您选择:
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])
from pathlib import Path
line_lst = Path("to/the/file.txt").read_text().splitlines()
是获取文件所有行的最佳方法,'\n'已经被splitlines()剥离(它可以智能识别win/mac/unix行类型)。
但如果你想剥离每一行:
line_lst = [line.strip() for line in txt = Path("to/the/file.txt").read_text().splitlines()]
Strip()只是一个有用的示例,但是您可以按照自己的意愿处理您的行。
最后,你只想要连接的文本?
txt = ''.join(Path("to/the/file.txt").read_text().splitlines())
我已经摆弄了一段时间,更喜欢将use read与rstrip结合使用。如果没有rstrip("\n"), Python会在字符串的末尾添加换行符,这在大多数情况下不是很有用。
with open("myfile.txt") as f:
file_content = f.read().rstrip("\n")
print(file_content)
with open("data.txt") as myfile:
data="".join(line.rstrip() for line in myfile)
Join()将连接一个字符串列表,而不带参数的rstrip()将从字符串末尾删除空格,包括换行符。