我仍然是Python的初学者。我正在阅读从软件生成的制表符分隔文本文件,以过滤掉一组值。但生成的值都采用与IEEE浮点格式类似的格式。 (例如:1.5656565656E + 02)。
我的制表符分隔文件是这样的(实际上它是250列。大致就是这样)
with open('E:\\trialpy\\textfile.txt') as f:
reader = csv.reader(f, delimiter="\t")
d = list(reader)
for ind in range(len(d)):
if d[ind][2] == "1.00000000000000E+00":
print ind
目标是过滤那些Observ_Anle值,其observability_Analysis为1.0000000000000E + 00但是到目前为止我正在尝试将observability_Analysis的行号打印为1.0000000000000E + 00。
我试过的代码就像这样
%f
第一组代码正常工作。印刷品只是空的。它没有给出任何价值。请帮我解决一下这个。如果问题非常愚蠢,那就很抱歉。现在被困在这个地方一段时间了。有没有办法解决这个问题,或者我必须切换到Pandas
感谢。
答案 0 :(得分:1)
问题似乎是csv阅读器无法正确处理这些数据,所以每一行都作为单个字符串保存到列表中(row
)......
with open('data.csv', 'r') as f1:
r = csv.reader(f1, delimiter='\t')
next(r, None) # skip first line
for row in r:
thirdc = row[0].split()[2]
if float(thirdc) > 0.0:
print(thirdc)
1.00000000000000E+00
1.00000000000000E+00
1.00000000000000E+00