Apr-27-2020, 09:26 AM
(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.