为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2023-12-26 15:50:37
我有一个代码,我想将其放入 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 islicewith 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.0elem = saved_lines.astype(np.int)# following lines extract some data from my fileextracted=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 fileID= np.array [[… ..., …, …]] # now, it is has one column, but it should have several columns and each iteration, one column will make a my_data arraymy_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 distancedistances=distance.cdist(extracted [:,17:20],my_data[:,1:4])ind_min_dis=np.argmin(distances, axis=1).reshape(-1,1)我感谢您提前提供的任何帮助。
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

我不太确定你的问题。但你似乎在要求类似的东西:


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...

查看完整回答
反对 回复 2023-12-26
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信