2015-01-07 2 views
0

Для проекта мне нужно извлечь данные о цвете, которые определены в файле IFC. IFC определяет модель сущности-отношения на основе EXPRESS, состоящую из нескольких сотен объектов, организованных в иерархию наследования объектов.Запись регулярных выражений в файл Python

Раздел файла IFC для в качестве примера:

#3510= IFCCLOSEDSHELL((#3392,#3410,#3421,#3440,#3451,#3462,#3473,#3484,#3495,#3506)); 
#3514= IFCFACETEDBREP(#3510); 
#3517= IFCCOLOURRGB($,0.9372549,0.79215686,0.44705882) 

Теперь я хочу, чтобы добиться возвращения всех цветовых данных с помощью регулярных выражений в Python. До сих пор я пришел с этим (я новичок в программировании)

открывает файл

МФК
IfcFile = open('ifc2.ifc', 'r') 

#defines the string 
IfcColourData = re.compile('ifccolourrgb', re.IGNORECASE) 


#iterating over the ifc file 
for RadColourData in IfcFile: 
    if re.search(IfcColourData, RadColourData): 
     print(RadColourData) 
IfcFile.close()  

#writing the data to a file 
f = open('IFC2RAD.txt', 'w') 
f.write(RadColourData) 
f.close() 

код работает, он возвращает все строки в ifcfile с IfcColourRGB в них. (Что я вижу на моей консоли). Я использую Eclipse с Pydev и Python 3.4.

Только когда я хочу записать результат RadColourData в файл IFC2RAD.txt, он записывает только последнюю строку файла ifc в файл IFC2RAD.txt. Что я делаю не так?

ответ

0

После pritinting записи его в файл, например:

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

#defines the string 
IfcColourData = re.compile('ifccolourrgb', re.IGNORECASE) 

f = open('IFC2RAD.txt', 'w') # opne file to write here 

for RadColourData in IfcFile: 
    if re.search(IfcColourData, RadColourData): 
     print(RadColourData) 
     f.write(RadColourData)  # write here to file 
IfcFile.close()  
f.close() 
Смежные вопросы