如何用另一个输入数据重复另一个代码中的脚本

how to repeat a script in another code with another input data

我是 python 的新手 我写了一个代码,在这个代码中我加载了一个 txt 文件,我在另一个 txt 文件中得到了我的结果,我想对我拥有的其他 txt 文件重复这个代码所有这些都在同一个文件夹中。我想加载近 300 个 txt 文件并执行此操作,但我不知道该怎么做。谢谢

dat = np.loadtxt('test1.txt')
x = dat[:, 0]
y = dat[:, 2]
peak = LorentzianModel()
constant = ConstantModel()
pars = peak.guess(y, x=x)
pars.update( constant.make_params())
pars['c'].set(1.04066)
mod = peak + constant
out=mod.fit(y, pars, x=x)
comps = out.eval_components(x=x)
writer = (out.fit_report(min_correl=0.25))
path = '/Users/dellcity/Desktop/'
filename = 'output.txt'
with open(path + filename, 'wt') as f:
    f.write(writer)

您需要定义一个将文件名作为参数的函数,并在程序的主要部分创建一个循环,在该循环中找到要加载的所有文件,然后调用该函数,例如:

import os

def myFunction(filename):
    dat = np.loadtxt(filename)
    x = dat[:, 0]
    y = dat[:, 2]
    peak = LorentzianModel()
    constant = ConstantModel()
    pars = peak.guess(y, x=x) 
    pars.update( constant.make_params())
    pars['c'].set(1.04066)
    mod = peak + constant
    out=mod.fit(y, pars, x=x)
    comps = out.eval_components(x=x)
    writer = (out.fit_report(min_correl=0.25))
    path = '/Users/dellcity/Desktop/'
    filename = 'output.txt'
    # open in mode a = append
    with open(path + filename, 'at') as f:
       f.write(writer)    

# the parameter of os.listdir is the path to your file, 
# change to the path of your data files
for filename in os.listdir('.'):
    if filename.endswith(".txt"):
        myFunction(filename)