現在のテキストファイルをテキストの一部を置き換えます。私は、テキストファイル(0.1518
、0.4910
に番号を変更したいPythonはテキストファイルに
NAME S1 2581751 2581758 1
NAME S2 2581761 2581776 1
NAME S3 2581779 2581786 1
NAME S4 2581789 2581804 1
NAME S5 2581807 2581814 1
C A0-ABC
A(1) = 0.2145 !k2
B(2) = 0.542 !K2O
C(3) = 0.35 !D2
D(4) = 0.0476 !CO
E(5) = 0.123 !C1
C CI-ABC
NAME S5 2581779 2581786 1
NAME S5 2581789 2581804 1
NAME S5 2581807 2581814 1
:
NAME S1 2581751 2581758 1
NAME S2 2581761 2581776 1
NAME S3 2581779 2581786 1
NAME S4 2581789 2581804 1
NAME S5 2581807 2581814 1
C A0-ABC
A(1) = 0.1518 !k2
B(2) = 0.4910 !K2O
C(3) = 0.0314 !D2
D(4) = 0.0876 !CO
E(5) = 0.2382 !C1
C CI-ABC
NAME S5 2581779 2581786 1
NAME S5 2581789 2581804 1
NAME S5 2581807 2581814 1
更新テキストファイルは次のようになります。 ..)から新しい番号(0.2145
、0.5242
...)に変換されます。最初はC A0-ABC
とC CI-ABC
の間の行を取り出し、リストに保存してから番号を更新し、別の名前で保存します。しかし、私は元のテキストファイルに更新された番号を置き換える問題があります。
import sys
import os
import numpy as np
import math
import string
path='Directory..'
k2 =0.2145
K2O=0.542
D2 = 0.35
CO = 0.476
C1 = 0.123
Update=[str(k2),str(K2O),str(D2),str(CO),str(C1)]
files = os.listdir('.')
f = open(path+'\Input.txt','r')
lines = f.readlines()
copy = False
save_list=[]
for line in lines :
if line.strip() == "C A0-ABC":
copy = True
elif line.strip() == "C CI-ABC":
copy = False
elif copy:
save_list.append(line)
file= open(path+'\Update_INPF.txt','w')
lis=[x.split() for x in save_list]
A = [str(x[0]) for x in lis]
B = [str(x[1]) for x in lis]
C = Update
D= [str(x[3]) for x in lis]
F=zip(A,B,C,D)
for x in list(F):
file.write("{0}\t{1}\t{2}\t{3}\n".format(*x))
file.close()
print save_list
* "私は問題がある" *上の任意の進歩? – jonrsharpe
「問題があります」エラーは、より一般的な「動作しません」というエラーを継承します。あなたの問題が肉体的、精神的または霊的であるかどうかを調べるには、エラーのタイプをチェックしてください。 – stark