考虑一个有 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
对于第二列,即 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”的输出文件中,我将其一一写入文件中……这很耗时……而且效率不高……
因此,如果有人可以提出一种更简单的方法,那将会很有帮助............