首页 > 解决方案 > 如何用 numpy 数组替换文件的一部分

问题描述

我有一个 .msh 文件,可以由文本阅读器打开和修改。我想在 python 中打开它,然后用一个 numpy 数组替换一些特定的行并将它的保存为一个新的 .msh 文件。我的 numpy 数组有 9 列和数百行。我的文件也有数百行。我想用我的 numpy 数组替换文件中包含 9 列的行。当然,我的 numpy 数组中的行数与我的文件中有 9 列的行数相同。为简单起见,我在这里只展示了两行,但实际上我有数百行。numpy 数组是:

arr_1= np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [-1, 0, 0, 1, 46, 2, -11, 0, 0]])

我的文件(my_file)如下:

$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
2929
1 26.66002035140991 0.75 1.25
-1 5 14 13.2 7.4444 11 9 -3 0.15 
0.2 9 54.45 1 63 22.45 0 12 425.65

然后,我想获得一个新名称的新保存文件:

$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
2929
1 26.66002035140991 0.75 1.25
1 2 3 4 5 6 7 8 9 
-1 0 0 1 46 2 -11 0 0

我只能执行以下操作,但它不起作用:

with open('my_file') as f:
   new_data= line.split() for line in f if len(line.split()) == 9
   for i in new_data:
        for j in arr_1:
             i = j

我试过了,但根本不成功。所以,我感谢任何提示和帮助。干杯,阿里

标签: pythonnumpy

解决方案


尝试以下操作:

with open('my_file') as f:
    for line in f:
        new_data = line.split()
        if len(new_data)==9:
            for i in new_data:
                for j in arr_1:
                    i = j

推荐阅读