从文本文件中识别并提取数字

时间:2015-04-01 14:58:35

标签: python python-2.7 file

我正在尝试从文本文件中提取数据。文件中的数据有些随机,后面跟着一个代码。 (例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 

3 个答案:

答案 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您的文件。