我对python相当陌生。基本上,我尝试在输入文件中插入一个2D数组来创建一个新的输出文件。在
输入数据的格式如下:!TITLE
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
实际上,我只是想用3x1数组替换特定列,比如:
^{pr2}$
这给了我:[[1111]
[1111]
[1111]]
我的代码:Inp_ptr = file('inp_file.dat', 'r')
Inp_data = Inp_ptr.readlines()
firstline = 1
for i in range(firstline,firstline+2):
old_inp[i-firstline] = array(Inp_data[i].split()[0:12])
new_inp = zeros([3,12])
for i in range(0,2):
new_inp[i] = [old_inp[i,0], old_inp[i,1], float(newcol_3[i]), old_inp[i,3], ... old_inp[1,11]]
这给了我3x12阵列。要将其打印到我尝试过的文件中:Out_ptr = file('out_file.dat', 'w')
Out_data = Inp_data
row0 = str(new_inp[0])
row1 = str(new_inp[1])
row2 = str(new_inp[2])
Out_data[firstline] = row0
Out_data[firstline+1] = row1
Out_data[firstline+2] = row2
for line in Out_data:
Out_ptr.write(line)
这让我有点接近,但是输入仍然是以数组(和多行)的形式输出的,因此输出看起来像:!TITLE
[ 0000 0000 1111 0000 0000 0000
0000 0000 0000 0000 0000 0000][ 0000 0000 1111 0000 0000 0000
0000 0000 0000 0000 0000 0000][ 0000 0000 1111 0000 0000 0000
0000 0000 0000 0000 0000 0000]
我要找的是:!TITLE
0000 0000 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000
我在这里迷路了,我搜索了网络,尝试了“”的各种组合。join和\n%等等。我也确信有更简单的方法来创建新的数据集(我了解for循环,所以我坚持我所知道的)。但我愿意接受所有的建议。谢谢!在