Изменение текстового файла построчно? - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь заменить первый столбец файла .txt новым значением, рассчитанным из предыдущей строки и использующим данные в текущей строке. Я хотел бы сохранить все столбцы, кроме первого столбца. Ниже приведено то, что у меня есть в настоящее время, однако я не уверен, как заменить первый столбец:

Tb = 264.0
K1 = 488.12
K2 = 0.4685
cp = 2100.
rho = 920.
K0 = K1/Tb+K2
kappa = K0/(rho*cp)

i=1
correct = (np.loadtxt("nusselt.txt")[i-1,0])+((np.loadtxt("nusselt.txt")[i,9])*((np.loadtxt("nusselt.txt")[i,8])**2)/(kappa*3600*24*365*(10**6)))
print(correct)
while i<(max(np.loadtxt("nusselt.txt")[:,10])):

    correct = correct+((np.loadtxt("nusselt.txt")[i,9])*((np.loadtxt("nusselt.txt")[i,8])**2)/(kappa*3600*24*365*(10**6)))
    print(correct)
    i+=1

Ниже приведен пример использования файла .txt.

0.0006621671 0.8945038362 0.0000000000 0.1721768200 0.0807264003 72.3204864794 35306.3184418046 5004.8115858572 0.0010000000 0.0010000000 1.0000000000 
0.0009277460 0.9191163858 0.0000000000 0.1767442344 0.0804871826 74.8408206748 35347.0063156642 5006.7334039793 0.0004000000 0.0014000000 2.0000000000 
0.0011937393 0.8884819376 0.0000000000 0.1707877101 0.0809770939 71.3448542427 35388.0400666959 5008.6700659051 0.0004000000 0.0018000000 3.0000000000 
0.0014601443 0.8978641464 0.0000000000 0.1725244630 0.0809949578 72.2070954963 35429.1476976574 5010.6087141754 0.0004000000 0.0022000000 4.0000000000 
0.0017269683 0.8764531166 0.0000000000 0.1683451774 0.0813451815 69.6863077136 35470.5221963013 5012.5584343836 0.0004000000 0.0026000000 5.0000000000 

1 Ответ

1 голос
/ 04 февраля 2020

Во-первых, вам нужно загрузить файл только один раз. В настоящее время каждый раз, когда вы используете np.loadtxt, его приходится перечитывать в файле. Чтобы достичь того, чего вы хотите, я думаю, вы могли бы сделать что-то вроде:

Tb = 264.0
K1 = 488.12
K2 = 0.4685
cp = 2100.
rho = 920.
K0 = K1/Tb+K2
kappa = K0/(rho*cp)

# load the data file in
data = np.loadtxt("nusselt.txt")

# loop over the data
for i in range(1, len(data)):
    # update the first column
    data[i, 0] = data[i-1,0] + (data[i,9]*data[i,8])**2/(kappa*3600*24*365*(10**6))

print(data)

# save it to a file again
np.savetxt("nusselt_new.txt", data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...