Форум сайта python.su
Добрый день.
Необходимо отпарсить файл (ISO 10303 STEP), содержащий в себе всякую разную инфу и в том числе строковые переменные
Ниже две строки из файла:
#80=ADVANCED_FACE('PartBody',(#79),#56,.T.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','config_control_design',1994,#1) ;
#!/usr/bin/python
from pyparsing_py2 import *
import string
ap = "\'"
space = " "
non_q_char = space.join([c for c in printables if c not in """_'\~"""])
string_par = Combine(Word(ap, exact=1) + Word(non_q_char) + Word(ap, exact=1))
f = open("Orb.stp", "r")
text = f.read()
f.close()
instances = string_par.searchString(text)
for instance in instances:
print instance
FILE_NAME('C:\\Documents\\ASD\\ASDSEE\\STEP\\Orb.stp','2009-04-04T09:15:46+00:00',('none'),('none'),'dfgvdfv''sdfdsfsf','fd3','none');
typed_parameter = keyword + opbr + parameter + clbr
untyped_parameter = undefined_parameter | integer | real | string_par | entity_instance_name | enumeration | binary | listed
parameter = typed_parameter | untyped_parameter | omitted_parameter
http://pyparsing.wikispaces.com/message/view/Publications/13034711
Отредактировано (Авг. 15, 2010 18:59:36)
Офлайн
Ещё проблемка возникла
#!/usr/bin/python
from pyparsing_py2 import *
import string
data_head = "DATA;"
end_section = "ENDSEC;"
сharacter = "".join([c for c in printables if c not in """~"""])
dat = Word(сharacter)
data_section = data_head + ZeroOrMore(dat) + end_section
f = open("in.txt", "r")
text = f.read()
f.close()
instances = data_section.searchString(text)
#instances = dat.searchString(text)
for instance in instances:
print instance
DATA;
asdfg asd asg as ga
g asdg a
sg
asg
as
g a4tg134t
1g 1rdt
ENDSEC;
import re
...
text = re.sub("\n", "", text)
Отредактировано (Авг. 14, 2010 15:08:34)
Офлайн