5 列 (0-5) の入力ファイルを考えます。
1 0 937 306 97 3
2 164472 75 17 81 3
3 197154 35268 306 97 3
4 310448 29493 64 38 1
5 310541 29063 64 38 1
6 310684 33707 64 38 1
7 319091 47451 16 41 1
8 319101 49724 16 41 1
9 324746 61578 1 5 1
10 324939 54611 1 5 1
2 番目の列、つまり column1(0,164472,197154-----------) では、column1 が (0,164472-0,197154- 164472, _ ___ ) そう (0,164472,32682........).
また、出力ファイルは column1 の値のみを変更する必要があり、他のすべての値は入力ファイルと同じままにする必要があります。
1 0 937 306 97 3
2 164472 75 17 81 3
3 32682 35268 306 97 3
4 113294 29493 64 38 1
5 93 29063 64 38 1
6 143 33707 64 38 1
7 8407 47451 16 41 1
8 10 49724 16 41 1
9 5645 61578 1 5 1
10 193 54611 1 5 1
誰かがこれを行うためのPythonコードを提案できれば、それは役に立ちます........
実際には、すべての列をリストに追加し、column2 の違いを見つけて、別のファイルに書き戻そうとしましたが、入力ファイル全体に 50,000 行が含まれているため、失敗した
私が試した試行コードは次のとおりです。
import sys
import numpy
old_stdout = sys.stdout
log_file = open("newc","a")
sys.stdout = log_file
a1 = []; a2 = []; a2f = []; v = []; a3 = []; a4 = []; a5 = []; a6 = []
with open("newfileinput",'r') as f:
for line in f:
job = map(int,line.split())
a1.append(job[0])
a3.append(job[2])
a4.append(job[3])
a5.append(job[4])
a6.append(job[5])
a2.append(job[1])
v = [a2[i+1]-a2[i] for i in range(len(a2)-1)]
print a1
print v
print a3
print a4
print a5
print a6
sys.stdout = old_stdout
log_file.close()
6つのリストを含むコード「newc」の出力ファイルから、1つずつファイルに書き込みました...これには時間がかかりました....&あまり効率的ではありません...
したがって、誰かがより簡単な方法を提案できれば、それは役に立ちます........