ich habe folgendes Problem.
Ich will eine erstellte Textdatei einlesen, diese an 4 bestimmten Zeilen bearbeiten und anschließend in der gleich Form wie sie eingelesen wurde wieder in die Datei schreiben.
Die Textdatei hat zwischen 100.000 und 300.000 Zeilen jedoch sind nur rund die letzen 50 Zeilen interessant.
Hier ein Bsp. wie die Textdatei aussieht
- ***********************************************************
** Materials
** written by write_materials function
** Young's modulus unit is MPa = N/mm2
** FreeCAD material name: CalculiX-Steel
** SolidMaterial
*MATERIAL, NAME=SolidMaterial
*ELASTIC
210000, 0.300
*DENSITY
7.6e-09
***********************************************************
** Sections
** written by write_femelementsets function
*SOLID SECTION, ELSET=SolidMaterialSolid, MATERIAL=SolidMaterial
***********************************************************
** Transform Constraints
** written by write_constraints_transform function
** FemConstraintTransform
*TRANSFORM, NSET=CylinFemConstraintTransform, TYPE=C
0.0,0.0,10.25,0.0,0.0,-9.75
***********************************************************
** At least one step is needed to run an CalculiX analysis of FreeCAD
** written by write_step_begin function
*STEP
*STATIC
*DLOAD
Eall,centrif,2270000,0.,0.,0.,0.,0.,1.
Ich habe jetzt folgendes Problem: Ich habe es bereits geschafft mit Hilfe einer Liste die Datei sauber einzulesen und bestimmte Zeilen zu bearbeiten.
Allerdings habe ich bei Listen das Problem wenn ich diese wieder in die Textdatei schreiben möchte wird jede Zeile in [diese Viereckigen Klammern] geschrieben.
Hier mein Code dazu
Code: Alles auswählen
data = list()
file = open(r"C:\Users\phili\Desktop\FEMMeshNetgen.inp","r")
for line in file:
data.append(line.strip().split(","))
file.close()
file = open(r"C:\Users\phili\Desktop\FEMMeshNetgen.inp","a")
data[len(data)-37] = "TEST"
file.close()
with open(r"C:\Users\phili\Desktop\FEMMeshNetgen.inp","w") as output:
for row in data:
output.write(str(row) + '\n')
print(data)
Hat zum Teil funktioniert konnte die Datei sauber einlesen jedoch finde ich keine Lösung wie ich die eingelesen datei bearbeiten kann und wieder in die alte Datei schreiben kann.
Hat jemand zu diesen Problem eine idee wie ich die beiden Sachen kombinieren kann?