我使用以下代码段来读取python中的文件:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
输入文件是:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
当我打印数据时,我得到了
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
我看到数据是list
形式。我如何使它成为字符串?还有如何从中删除"\n"
,"["
和"]"
个字符?
答案 0 :(得分:1067)
您可以使用:
with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')
答案 1 :(得分:547)
使用read(),而不是readline()
with open('data.txt', 'r') as myfile:
data = myfile.read()
答案 2 :(得分:57)
您可以从一行中读取文件:
str = open('very_Important.txt', 'r').read()
请注意,这不会明确关闭文件。
CPython将在文件作为垃圾收集的一部分退出时关闭该文件。
但是其他python实现不会。要编写可移植代码,最好使用with
或明确关闭文件。简短并不总是更好。见https://stackoverflow.com/a/7396043/362951
答案 3 :(得分:41)
简单的方法:
file = open('data.txt', 'r')
text = file.read().strip()
file.close()
使用with
(推荐):
with open('data.txt', encoding='utf8') as f:
text = f.read().strip()
注意:with
自动关闭文件 。
答案 4 :(得分:29)
with open("data.txt") as myfile:
data="".join(line.rstrip() for line in myfile)
join()将连接一个字符串列表,而没有参数的rstrip()将从字符串末尾修剪空格,包括换行符。
答案 5 :(得分:24)
在Python 3.5或更高版本中,使用pathlib,您可以将文本文件内容复制到变量中并在一行中关闭文件:
g++ main.cpp -o main -std=c++11 -DINFINITE_MATH -DSIGNED_ZERO_MATH && ./main
然后您可以使用str.replace删除换行符:
from pathlib import Path
txt = Path('data.txt').read_text()
答案 6 :(得分:11)
这可以使用read()方法完成:
text_as_string = open('Your_Text_File.txt', 'r').read()
或者因为默认模式本身是'r'(读取),所以只需使用
text_as_string = open('Your_Text_File.txt').read()
答案 7 :(得分:9)
我已经摆弄了一段时间,并且更倾向于将read
与rstrip
结合使用。如果没有rstrip("\n")
,Python会在字符串末尾添加换行符,这在大多数情况下都不是很有用。
with open("myfile.txt") as f:
file_content = f.read().rstrip("\n")
print file_content
答案 8 :(得分:6)
很难准确说出你的目标,但是这样的事情应该让你开始:
with open ("data.txt", "r") as myfile:
data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
答案 9 :(得分:5)
这是一个可复制粘贴的单行解决方案,它也关闭了文件对象:
_ = open('data.txt', 'r'); data = _.read(); _.close()
答案 10 :(得分:4)
您还可以删除每一行并连接成最终字符串。
myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
data = data + line.strip();
这也很合适。
答案 11 :(得分:2)
您可以将其压缩为两行代码!!!
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
答案 12 :(得分:2)
f = open('data.txt','r')
string = ""
while 1:
line = f.readline()
if not line:break
string += line
f.close()
print string
答案 13 :(得分:2)
我很惊讶没人提到splitlines()
。
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
变量data
现在是一个打印时看起来像这样的列表:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
请注意,没有新行(\n
)。
此时,听起来您想要将线条打印回控制台,您可以通过for循环实现:
for line in data:
print line
答案 14 :(得分:1)
python3:Google" list comphrension"如果方括号语法对你来说是新的。
with open('data.txt') as f:
lines = [ line.strip( ) for line in list(f) ]
答案 15 :(得分:1)
正则表达式也适用:
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']
答案 16 :(得分:1)
你试过这个吗?
x = "yourfilename.txt"
y = open(x, 'r').read()
print(y)
答案 17 :(得分:1)
我觉得没有人解决你问题的[]部分。当你在变量中读取每一行时,因为在用''替换\ n之前有多行,你最终创建了一个列表。如果你有一个x变量并且只用
打印出来x
或print(x)
或str(x)
您将看到带括号的整个列表。如果你调用(排序数组)的每个元素
X [0] 然后它省略括号。如果使用str()函数,您将只看到数据,而不是''。 STR(X [0])
答案 18 :(得分:0)
file = open("myfile.txt", "r")
lines = file.readlines()
str = '' #string declaration
for i in range(len(lines)):
str += lines[i].rstrip('\n') + ' '
print str
答案 19 :(得分:0)
with open(player_name, 'r') as myfile:
data=myfile.readline()
list=data.split(" ")
word=list[0]
此代码将帮助您阅读第一行,然后使用列表和拆分选项,您可以将由空格分隔的第一个单词转换为存储在列表中。
您可以轻松访问任何单词,甚至将其存储在字符串中。
使用for循环也可以做同样的事情。
答案 20 :(得分:0)
这有效: 将您的文件更改为:
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
或者:
print words[0] + ",", words[1] # Note that the "+" symbol indicates no spaces
#The comma not in parentheses indicates a space
返回:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN, GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
答案 21 :(得分:0)
也许您可以尝试一下?我在程序中使用它。
Data= open ('data.txt', 'r')
data = Data.readlines()
for i in range(len(data)):
data[i] = data[i].strip()+ ' '
data = ''.join(data).strip()
答案 22 :(得分:0)
要使用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"
}
您可以使用以下重播方案进行尝试:
答案 23 :(得分:0)
with open('data.txt', 'r') as file:
data = [line.strip('\n') for line in file.readlines()]
data = ''.join(data)
答案 24 :(得分:-1)
请尝试以下操作:
with open('data.txt', 'r') as myfile:
data = myfile.read()
sentences = data.split('\\n')
for sentence in sentences:
print(sentence)
警告:它不会删除\n
。它仅用于查看文本,就好像没有\n