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,
我是编程新手,但找不到我认为不难的答案。 对于一个项目,我必须从指定如下的文件中提取 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,