如何在 python 中迭代文件并导出多个输出文件

我有一个代码,我想将其放入 for 循环中。我想将一些存储为文件的数据输入到我的代码中,并根据每个输入自动生成输出。目前,我的代码仅适用于一个输入文件,因此给出一个输出。我的输入文件名为model000.msh,但事实是我有一系列这些输入文件model000.msh,其名称model001.msh为 、 等。在代码中,我对导入的文件进行一些计算,最后将其与my_data另一个具有ID一列和数千行的 numpy 数组 () 生成的 numpy 数组 () 进行比较。IDarray 是我要迭代的第二个变量。ID正在my_data通过一个np.concatenate函数进行。我想用 的每一列ID来制作my_data( my_data=np.concatenate((ID[:,iterator], gr), axis =1))。因此,我想迭代多个文件,然后从每个文件中提取数组(extracted),然后按照循环my_data从 的每一列生成ID并进行计算my_data,extracted最后使用动态命名方法导出每次迭代的结果(changed_000,changed_001等等在)。这是我的一个单一输入和一个单一my_data数组的代码(由ID只有一列的数组组成),但我想更改对多个输入文件和多个my_data数组以及最后几个输出的迭代:


from itertools import islice

with open('model000.msh') as lines:

        nodes = np.genfromtxt(islice(lines, 0, 1000))

with open('model000.msh', "r") as f:

    saved_lines = np.array([line.split() for line in f if len(line.split()) == 9])

saved_lines[saved_lines == ''] = 0.0

elem = saved_lines.astype(np.int)

# following lines extract some data from my file

extracted=np.c_[elem[:,:-4], nodes[elem[:,-4]-1, 1:], nodes[elem[:,-3]-1, 1:],nodes[elem[:,-2]-1, 1:], nodes[elem[:,-1]-1, 1:]]

extracted =np.concatenate((extracted, avs), axis =1) # each input file ('model000.msh') will make this numpy array

# another data set, stored as a numpy array is compared to the data extracted from the file

ID= np.array [[… ..., …, …]] # now, it is has one column, but it should have several columns and each iteration, one column will make a my_data array

my_data=np.concatenate((ID, gr), axis =1) # I think it should be something like my_data=np.concatenate((ID[:,iterator], gr), axis =1)

from scipy.spatial import distance

distances=distance.cdist(extracted [:,17:20],my_data[:,1:4])

ind_min_dis=np.argmin(distances, axis=1).reshape(-1,1)


我感谢您提前提供的任何帮助。


摇曳的蔷薇
浏览 105回答 1
1回答

婷婷同学_

我不太确定你的问题。但你似乎在要求类似的东西:for idx in range(10):    with open('changed_{:0>2d}'.format(idx), 'a') as fout:        with open('model0{:0>2d}.msh'.format(idx), 'r') as fin:            #read something from fin...            #calculate something...            #write something to fout...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python