Return 一行中的浮点数 (Python 3.4)

Return the amount of floating points in a line (Python 3.4)

我是编程新手,但找不到我认为不难的答案。 对于一个项目,我必须从指定如下的文件中提取 RGB 值:

#98=IFCCOLOURRGB($,0.26,0.22,0.18);

到目前为止,我已经用正则表达式制作了一个脚本,它产生了这个输出:

0.26 0.22 0.18

现在我想 return 将该行中的数字数量作为该行前面的整数,如下所示:

3 0.26 0.22 0.18 

如果在该行中添加了额外的数字,即使它是 0,它也应该加起来

比如我想return

0.26 0.22 0.18 0 0 

作为

5 0.26 0.22 0.18 0 0

目前的代码:

import re 

IfcFile = open('IfcOpenHouse.ifc', 'r')

IfcColourData = re.compile("IFCCOLOURRGB\($,([\d\.]+),([\d\.]+),([\d\.]+)")

RadFile = open('IFC2RAD.rad', 'w')

for RadColourData in IfcFile:
    RGB_Data = IfcColourData.search(RadColourData)
    if RGB_Data:
        RadFile.write('mod material name' + '\n')
        RadFile.write('0' + '\n')
        RadFile.write('0' + '\n')
        g = RGB_Data.groups()
        RadFile.write('{0} {1} {2}\n\n'.format(g[0], g[1], g[2]))


IfcFile.close() 
RadFile.close()

我应该使用 len() 吗?我如何准确指定浮点数 and/or 整数而不是该行中的所有字符?

你的问题也不是很清楚,为了更好的结果请说明。看看是不是你要找的

import re
a='IFCCOLOURRGB($,0.26,0.22,0.18,1)'
d= (re.findall(r'[-+]?\d*\.\d+|\d+', a))
d[0]=len(d)
for num in d:
    print num,