我使用以下代码段来读取python中的文件:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
Run Code Online (Sandbox Code Playgroud)
输入文件是:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
Run Code Online (Sandbox Code Playgroud)
当我打印数据时,我得到了
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Run Code Online (Sandbox Code Playgroud)
我看到数据的list
形式.我如何使它成为字符串?而且我怎么删除"\n"
,"["
以及"]"
从中字符?
sle*_*erd 1189
你可以使用:
with open('data.txt', 'r') as file:
data = file.read().replace('\n', '')
Run Code Online (Sandbox Code Playgroud)
小智 584
使用read(),而不是readline()
with open('data.txt', 'r') as myfile:
data = myfile.read()
Run Code Online (Sandbox Code Playgroud)
Naf*_*mad 63
您可以从一行中读取文件:
str = open('very_Important.txt', 'r').read()
Run Code Online (Sandbox Code Playgroud)
请注意,这不会显式关闭文件.
CPython将在文件作为垃圾收集的一部分退出时关闭该文件.
但其他python实现不会.要编写可移植代码,最好with
明确使用或关闭文件.简短并不总是更好.请参阅/sf/answers/517723041/
Ped*_*ito 49
简单的方法:
with open('t.txt') as f:
s = " ".join([x.strip() for x in f])
Run Code Online (Sandbox Code Playgroud)
使用__CODE__
(推荐):
with open('t.txt') as f:
s = " ".join([x.strip() for x in f])
Run Code Online (Sandbox Code Playgroud)
注:无需关闭文件,__CODE__
不自动的.
Jon*_*man 34
在Python 3.5或更高版本中,使用pathlib可以将文本文件内容复制到变量中并在一行中关闭文件:
from pathlib import Path
txt = Path('data.txt').read_text()
Run Code Online (Sandbox Code Playgroud)
然后你可以使用str.replace删除换行符:
txt = txt.replace('\n', '')
Run Code Online (Sandbox Code Playgroud)
Mag*_*alp 30
with open("data.txt") as myfile:
data="".join(line.rstrip() for line in myfile)
Run Code Online (Sandbox Code Playgroud)
join()将连接一个字符串列表,而没有参数的rstrip()将从字符串末尾修剪空格,包括换行符.
Loo*_*hie 12
这可以使用read()方法完成:
text_as_string = open('Your_Text_File.txt', 'r').read()
Run Code Online (Sandbox Code Playgroud)
或者作为默认模式本身是'r'(读取)所以简单地使用,
text_as_string = open('Your_Text_File.txt').read()
Run Code Online (Sandbox Code Playgroud)
Jul*_*ian 11
我很惊讶还没有人提到splitlines()
。
with open ("data.txt", "r") as myfile:
data = myfile.read().splitlines()
Run Code Online (Sandbox Code Playgroud)
变量data
现在是一个列表,打印时如下所示:
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Run Code Online (Sandbox Code Playgroud)
请注意,没有换行符 ( \n
)。
在这一点上,听起来您想将这些行打印回控制台,您可以使用 for 循环来实现:
for line in data:
print(line)
Run Code Online (Sandbox Code Playgroud)
My *_*Car 11
这里有四个代码供您选择一个:
with open("my_text_file.txt", "r") as file:
data = file.read().replace("\n", "")
Run Code Online (Sandbox Code Playgroud)
或者
with open("my_text_file.txt", "r") as file:
data = "".join(file.read().split("\n"))
Run Code Online (Sandbox Code Playgroud)
或者
with open("my_text_file.txt", "r") as file:
data = "".join(file.read().splitlines())
Run Code Online (Sandbox Code Playgroud)
或者
with open("my_text_file.txt", "r") as file:
data = "".join([line for line in file])
Run Code Online (Sandbox Code Playgroud)
我已经摆弄了一段时间,并且更愿意read
结合使用rstrip
.如果没有rstrip("\n")
,Python会在字符串末尾添加换行符,这在大多数情况下都不是很有用.
with open("myfile.txt") as f:
file_content = f.read().rstrip("\n")
print file_content
Run Code Online (Sandbox Code Playgroud)
很难确切地说出你所追求的是什么,但这样的事情应该让你开始:
with open ("data.txt", "r") as myfile:
data = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
Run Code Online (Sandbox Code Playgroud)
您还可以剥离每一行并连接成最终的字符串。
myfile = open("data.txt","r")
data = ""
lines = myfile.readlines()
for line in lines:
data = data + line.strip();
Run Code Online (Sandbox Code Playgroud)
这也能解决问题。
您可以将其压缩为两行代码!
content = open('filepath', 'r').read().replace('\n', ' ')
print(content)
Run Code Online (Sandbox Code Playgroud)
如果您的文件内容如下:
content = open('filepath', 'r').read().replace('\n', ' ')
print(content)
Run Code Online (Sandbox Code Playgroud)
Python输出
hello how are you?
who are you?
blank blank
Run Code Online (Sandbox Code Playgroud)
with open('data.txt') as f:
lines = [ line.rstrip('\n') for line in f ]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1183154 次 |
最近记录: |