正则表达式 Python 将输出写入文件

Regex Python writing output to a file

对于一个项目,我必须在定义如下的文件中提取 rgb 数据:

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

我一直在使用正则表达式,并在此处的帮助下想到了这个;

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

它输出:

('0.26', '0.22', '0.18')

现在如何在写入文件或打印到控制台时去掉括号和撇号?

我想这样输出:

0.26 0.22 0.18

编辑:

这是代码:

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:
        print(RGB_Data.groups())
        RadFile.write('mod material name' + '\n')
        RadFile.write('0' + '\n')
        RadFile.write('0' + '\n')
        RadFile.write(str(RGB_Data.groups()) + '\n' + '\n')  


#Closing IFC and RAD files  
IfcFile.close() 
RadFile.close()

该输出是一个包含三个元素的元组。您可以使用项目的索引获取元组 t 的元素:

print t[0], t[1], t[2]

你也可以做一个小循环:

>>> import re
>>> s = "#98=IFCCOLOURRGB($,0.26,0.22,0.18);"
>>> c = re.compile("IFCCOLOURRGB\($,([\d\.]+),([\d\.]+),([\d\.]+)")
>>> r = re.search(s)
>>> g = r.groups()
>>> g
('0.26', '0.22', '0.18')
>>> print g[0], g[1], g[2]
0.26 0.22 0.18
>>> for e in g: print e,
... 
0.26 0.22 0.18

底线:如果您将相关行更改为此,它将起作用:

g = RGB_Data.groups()
RadFile.write('{0} {1} {2}\n\n'.format(g[0], g[1], g[2]))