我正在尝试从文本文件中提取数据。文件中的数据有些随机,后面跟着一个代码。
(例1.25CROW,4.25CRD,10.25CR)我只想提取与#。## CR索引相关的数字。所以如果找到4.25CR
我只需要解析4.25并添加所有这些数字的总和。我已经能够识别包含该行的行
###.##CR
如下所示。我现在要做的是解析与CR相关的数字并将每个匹配项放在一个列表中
添加,识别等我看了string.operands和re.match,但我无法提出解决方案。帮助最多
赞赏。
open("some.txt").read()
#txt ='CR'
count = 0
for line in open("some.txt"):
if 'CRD' in line:
pass
elif 'CROW' in line:
pass
elif 'CR' in line:
print line
count = count + 1
print
print "Total # Count "
print count
答案 0 :(得分:0)
您可以通过执行类似
的操作将这些转换为数字float( line.replace( 'CR', '' ) )
答案 1 :(得分:0)
试试这个:
with open("some.txt") as f:
for line in f:
# break line to words
for word in line.strip().split()
if word.endswith("CR"):
try:
print "word %s-> %f" % (word, float(word[:-2]))
except:
print "word %s has no number" % word
答案 2 :(得分:0)
是的,你在写作轨道上。您需要将上一个elif
块修改为
elif 'CR' in line:
print line
count = count + 1
value = float(line.split('CR')[0])
listOfCRs.append(value)
在if
子句定义为
listOfCRs = []
最后在
中打印循环外的和print sum(listOfCRs)
几点
with open('some.txt') as f:
打开文件,因为它将明确close
您的文件。