.fil Abaqus-Datei in Array
Verfasst: Sonntag 8. November 2015, 16:16
Hallo zusammen,
ich bin auf der Suche, nach einem "schönen" Weg eine .fil-Datei aus Abaqus mittels python in ein array-Format zu bekommen. Anschließend soll eine Auswertung dieser Daten über die Record Keys stattfinden.
Das Format ist sehr gewöhnungsbedürftig und ich konnte mit Hilfe eines replace-Befehls immerhin das Dokument zeilenweise soritieren.
Auf den Buchstaben I folgt ein INTEGER. Der Buchstabe A leitet einen STRING mit 8 Zeichen ein und auf ein D folgt ein FLOAT-Zahl in wissenschaftlicher Schreibweise, nur ist der Exponent durch ein "D" angegebenen, anstatt üblicherweise einem "E".
[codebox=python file=x]'I 19I 41921A6.10-1 A08-Nov-2A015 A09:54:03I 16I 13D 1.000000000000000D+00\nI 16I 41900I 11ADASHPOT2I 12I 11\nI 16I 41900I 12ASPRING2 I 12I 11\nI 12I 42001 \nI 223I 42000D 0.000000000000000D+00D 0.000000000000000D+00D 0.000000000000000D+00D 0.000000000000000D+00I 295I 11I 222I 11D 0.000000000000000D+00D 1.506949602122016D+00D 0.000000000000000D+00AFORCED OASCILLATIAON WITH AVISCOELAASTIC DAMAPING A A A A \nI 14I 41911I 11ANALL \nI 15I 3111I 11D 0.000000000000000D+00D 0.000000000000000D+00\nI 19I 3111I 12D 6.625918346244238D-02D 0.000000000000000D+00D 0.000000000000000D+00D-1.478679518984229D+01D 0.000000000000000D+00D 0.000000000000000D+00\nI 19I 3111I 13D 7.480262652497893D-02D 0.000000000000000D+00D 0.000000000000000D+00D-1.622259472865796D+01D 0.000000000000000D+00D 0.000000000000000D+00\nI 12I 42001 \n'[/code]
Zum Code, ich hoffe, dass er nicht durch das kopieren umformatiert wurde.
Ein .split() mit den oben verwendeten Buchstaben ist leider nicht ohne weiteres möglich, da in den STRINGS eben diese Buchstaben auch vorkommen, des weiteren erschwert die Exponential-Schreibweise mittels "D" das teilen der FLOATs.
Hat jemand eine Idee?
Grüße,
Stoli
ich bin auf der Suche, nach einem "schönen" Weg eine .fil-Datei aus Abaqus mittels python in ein array-Format zu bekommen. Anschließend soll eine Auswertung dieser Daten über die Record Keys stattfinden.
Das Format ist sehr gewöhnungsbedürftig und ich konnte mit Hilfe eines replace-Befehls immerhin das Dokument zeilenweise soritieren.
Auf den Buchstaben I folgt ein INTEGER. Der Buchstabe A leitet einen STRING mit 8 Zeichen ein und auf ein D folgt ein FLOAT-Zahl in wissenschaftlicher Schreibweise, nur ist der Exponent durch ein "D" angegebenen, anstatt üblicherweise einem "E".
[codebox=python file=x]'I 19I 41921A6.10-1 A08-Nov-2A015 A09:54:03I 16I 13D 1.000000000000000D+00\nI 16I 41900I 11ADASHPOT2I 12I 11\nI 16I 41900I 12ASPRING2 I 12I 11\nI 12I 42001 \nI 223I 42000D 0.000000000000000D+00D 0.000000000000000D+00D 0.000000000000000D+00D 0.000000000000000D+00I 295I 11I 222I 11D 0.000000000000000D+00D 1.506949602122016D+00D 0.000000000000000D+00AFORCED OASCILLATIAON WITH AVISCOELAASTIC DAMAPING A A A A \nI 14I 41911I 11ANALL \nI 15I 3111I 11D 0.000000000000000D+00D 0.000000000000000D+00\nI 19I 3111I 12D 6.625918346244238D-02D 0.000000000000000D+00D 0.000000000000000D+00D-1.478679518984229D+01D 0.000000000000000D+00D 0.000000000000000D+00\nI 19I 3111I 13D 7.480262652497893D-02D 0.000000000000000D+00D 0.000000000000000D+00D-1.622259472865796D+01D 0.000000000000000D+00D 0.000000000000000D+00\nI 12I 42001 \n'[/code]
Zum Code, ich hoffe, dass er nicht durch das kopieren umformatiert wurde.
Ein .split() mit den oben verwendeten Buchstaben ist leider nicht ohne weiteres möglich, da in den STRINGS eben diese Buchstaben auch vorkommen, des weiteren erschwert die Exponential-Schreibweise mittels "D" das teilen der FLOATs.
Hat jemand eine Idee?
Grüße,
Stoli