(Dec-27-2019, 03:49 PM)kingsman Wrote: (Dec-27-2019, 02:15 PM)Gribouillis Wrote:
I have done something similar to yours and extract the information as you said before. Is this also be okay?
import re
SAP = open('Frame SAP.$2k', 'r')
class Statement:
def __init__(self, data):
self.data = data
def __repr__(self):
return "{}({})".format(self.__class__.__name__, self.data)
class SAP_Material_01 (Statement):
pass
parsed_file = []
material_data_01 = []
for line in SAP:
e = re.compile(r'\s{3}Material=\w+\s{3}Type=\w+\s{3}')
d = re.match(e, line)
if d != None:
parsed_file.append(line)
for line in parsed_file:
L = re.split(r'(\w+)[=]', line.strip())
assert L[0] == ''
pairs = {}
for i in range(1, len(L), 2):
pairs[L[i]] = L[i + 1].strip()
item = SAP_Material_01(pairs)
material_data_01.append(item)
for item in material_data_01:
print(item)
Output:
SAP_Material_01({'Material': '4000Psi', 'Type': 'Concrete', 'SymType': 'Isotropic', 'TempDepend': 'No', 'Color': 'Magenta', 'Notes': '"Customary f\'c 4000 psi 23/12/2019 2:17:43 pm"'})
SAP_Material_01({'Material': 'A615Gr60', 'Type': 'Rebar', 'SymType': 'Uniaxial', 'TempDepend': 'No', 'Color': 'White', 'Notes': '"ASTM A615 Grade 60 23/12/2019 2:18:28 pm"'})
SAP_Material_01({'Material': 'A992Fy50', 'Type': 'Steel', 'SymType': 'Isotropic', 'TempDepend': 'No', 'Color': 'Red', 'Notes': '"ASTM A992 Grade 50 23/12/2019 2:17:43 pm"'})
SAP_Material_01({'Material': 'C30', 'Type': 'Concrete', 'SymType': 'Isotropic', 'TempDepend': 'No', 'Color': 'Blue', 'Notes': '"Concrete added 23/12/2019 2:18:37 pm"'})
SAP_Material_01({'Material': 'C45', 'Type': 'Concrete', 'SymType': 'Isotropic', 'TempDepend': 'No', 'Color': 'Blue', 'Notes': '"Concrete added 23/12/2019 2:20:37 pm"'})
SAP_Material_01({'Material': 'C60', 'Type': 'Concrete', 'SymType': 'Isotropic', 'TempDepend': 'No', 'Color': 'Blue', 'Notes': '"Concrete added 23/12/2019 2:21:13 pm"'})
But how can I extract the information singly such as on C60, blue or isotropic? The output above shows that the information of that part has been totally extracted out and saved in a list. But when I re-write it, I need the information one by one.