我有一个如下所示的文本文件,我想只使用python:
读取data3中的所有内容.......
.......
.......
data1 (
.......
)
data2(
........;
)
data3 (
a: 1.4e10 ;
b: 0.3 ;
Name: Mat1;
)
data4(
linear;
)
.......
.......
.......
这就是我的所作所为:
f = open(text.txt).readlines()
for line in f:
if line.startswith("data3 ( \n"):
currentLine = f.readline()
if line.startswith(") \n"):
break
print (currentLine)
我试图运行这个程序,但我得到了这个:
currentLine = f.readline()
AttributeError: 'list' object has no attribute 'readline'
答案 0 :(得分:0)
您的问题是f
不是文件对象而是列表,因为您已经使用了readlines()
。行for line in f:
已经遍历各行,您应该查看如何读取文件,它比您预期的要简单得多。您的代码还有另一个问题,您不记得您找到了data3
,因此其他条目从未打印过。
试试这个:
data3 = []
with open("text.txt") as f:
found_data3 = False
for line in f:
if line.startswith("data3"):
found_data3 = True
if found_data3:
if line.startswith(")"):
break
else:
data3.append(line)
print("\n".join(data3))
答案 1 :(得分:0)
此代码将搜索两点之间的线:
rr = [] #Array for saving lines
for f in file_list:
with open(f, 'rt') as fl:
lines = fl.read()
lines = lines[lines.find('data3'):lines.find('data4')]
rr.append(lines)