Ich kopiere Daten von einem Original in eine neue Datei und weise den Strings, die ich ändern möchte, zufällig neue Werte zu. Aus irgendeinem Grund wird der Code, den ich habe, nur einen meiner Strings ersetzen. Ich habe versucht, vier verschiedene filedata.replace Zeilen zu schreiben, die vier f.write Befehlen entsprechen, aber das wird nicht funktionieren. Ich habe auch versucht, filedata.replace mehrere Argumente in einem Befehl zu ersetzen, aber das schafft auch Probleme.Wie ersetzen und schreiben Sie mehrere Zeichenfolgen in eine Datei?
import numpy as np
import random
import math
import shutil
for i in range (1,5):
shutil.copy('template.par', 'a.par')
a = str(random.uniform(0.00000000000000, 0.0001)) #sigma0
b = str(random.uniform(0.00000000000000, 1)) #sigmaslope
c = str(random.uniform(0.05000000000000, 0.1)) #viscosity
d = str(random.uniform(0.00000000000000, 0.00001)) #aspectratio
f = open('a.par','r')
filedata = f.read()
f.close()
newdata = filedata.replace("6.3661977237e-4", a)
newdata = filedata.replace("0.0", b)
newdata = filedata.replace("0.05", c)
newdata = filedata.replace("1e-5", d)
f = open('a.par','w')
f.write(newdata)
f.close()
ignorieren Sie die für i in Bereich Linie. – dlsj
fügen Sie zwei Zeilen zwischen den Zeilen "newdata = ..." hinzu. 'print (newdata)', 'print (filedata)' – fdsa
@fdsa ersetzt nur noch eine Zeile. – dlsj