gpt4 book ai didi

Python - 将二维数组写入文件中的特定行(空格分隔,无括号)

转载 作者:行者123 更新时间:2023-12-01 05:52:36 28 4
gpt4 key购买 nike

我对Python还很陌生。基本上,我试图将二维数字数组插入到输入文件中以创建新的输出文件。

输入数据的格式如下:

!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 数组替换特定的列,比如:

print(newcol_3)

这给了我:

[[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 循环,所以我坚持我所知道的)。但我愿意接受所有建议。谢谢!

最佳答案

当您打印列表时,您会得到代表它的括号。您真正想要在文件中结束的是字符串,最好使用 Out_ptr.write(''.join(line)) 处理。

关于Python - 将二维数组写入文件中的特定行(空格分隔,无括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648198/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com