Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python代码以表格格式打印多个txt文件的输出?_Python_Output Formatting - Fatal编程技术网

如何使用Python代码以表格格式打印多个txt文件的输出?

如何使用Python代码以表格格式打印多个txt文件的输出?,python,output-formatting,Python,Output Formatting,我已尝试通过一次运行,将700多个txt文件的数据集最佳匹配。我想把从所有文件中获得的输出参数转换成表格格式 def resid(params, x, ydata): decay = params['decay'].value phase = params['phase'].value omega = params['omega'].value amp = params['amp'].value ampb=params['ampb'].value phaseb

我已尝试通过一次运行,将700多个txt文件的数据集最佳匹配。我想把从所有文件中获得的输出参数转换成表格格式

def resid(params, x, ydata):
   decay = params['decay'].value
   phase = params['phase'].value
   omega = params['omega'].value
   amp = params['amp'].value
   ampb=params['ampb'].value
   phaseb=params['phaseb'].value
   #omegab = params['omegab'].value
   
   y_model =  (amp * np.sin(x*2*np.pi*omega+phase)+ ampb*np.sin(x*4*np.pi*omega+phaseb)) * np.exp(-x*decay)
   return y_model - ydata


filelist = glob.glob("C:/Users/USER/Desktop/B3/*.txt") 
#print(filelist)
for file in filelist:
   data = np.loadtxt(file)
   x = data[:,0]
   y = data[:,1]
   params = lmfit.Parameters()
   params.add('phase', 0.0,   min=-np.pi, max=np.pi)
   params.add('omega',  10,   min=7, max=12)
   params.add('amp',     7,   min=0, max=10.0)
   params.add('decay', 0.05,  min=0, max=10.0)
   params.add('ampb',     3,  min=0, max=8.0)
   params.add('phaseb', 0.0,  min=-np.pi, max=np.pi)
   #params.add('omegab', 18, min=16, max=20)   
   
   fit = lmfit.minimize(resid, params, args=(x, y), method='differential_evolution')
   #print("\n\n# Fit using differential_evolution:")
   #print(lmfit.report_fit(fit))
   for name, param in fit.params.items():
           if name=='phase':
               print('phase',' ' , param.value,' ',param.stderr, ) 
           elif name=='amp ':
               print('amp', '   ',param.value,'  ',param.stderr )
           elif name=='omega':
               print('omega', '  ',param.value,'  ',param.stderr)
           elif name=='decay':
               print('decay', '  ',param.value,'  ',param.stderr)
           elif name=='ampb':
               print('ampb', '   ',param.value,'  ',param.stderr)
           else: 
               print('phaseb','  ',param.value,'  ',param.stderr)
   print(fit.success)

我希望输出为这种格式

但是我已经分别得到了每个输出的值,如下所示

您可以在内部
for
循环之前创建一个空的
dict
,让循环用参数填充
dict
,然后在
for
循环完成后将它们全部打印在一行上。下面的示例将打印相邻的值,并用制表符分隔,制表符应该足够可读,但“表”可能没有完全对齐。若你们想让它在终端上看起来更好,这里提到了一些解决方案。或者,您可以将以制表符或逗号分隔的值转储到文件中,然后使用Excel等打开该文件

。。。
参数={}
fit.params.items()中的参数作为名称:
如果名称=='阶段':
params['phase']=参数值
params['phase_stderr']=param.stderr
elif名称==“amp”:
参数['amp']=参数值
params['amp_stderr']=param.stderr
elif名称=='omega':
参数['omega']=参数值
params['omega_stderr']=param.stderr
elif名称==“衰减”:
params['decay']=参数值
params['decay_stderr']=param.stderr
elif名称=='ampb':
params['ampb']=param.value
params['ampb_stderr']=param.stderr
其他:
params['phaseb']=参数值
params['phaseb_stderr']=param.stderr
印刷品(
参数['phase'],
参数['amp'],
参数['omega'],
参数['decay'],
参数['ampb'],
参数['phaseb'],
参数['phase_stderr'],
参数['amp_stderr'],
参数['omega_stderr'],
参数['decation\u stderr'],
参数['ampb_stderr'],
参数['phaseb_stderr'],
sep=“\t”
)

您可以在内部
for
循环之前创建一个空的
dict
,让循环用参数填充
dict
,然后在
for
循环完成后将它们全部打印在一行上。下面的示例将打印相邻的值,并用制表符分隔,制表符应该足够可读,但“表”可能没有完全对齐。若你们想让它在终端上看起来更好,这里提到了一些解决方案。或者,您可以将以制表符或逗号分隔的值转储到文件中,然后使用Excel等打开该文件

。。。
参数={}
fit.params.items()中的参数作为名称:
如果名称=='阶段':
params['phase']=参数值
params['phase_stderr']=param.stderr
elif名称==“amp”:
参数['amp']=参数值
params['amp_stderr']=param.stderr
elif名称=='omega':
参数['omega']=参数值
params['omega_stderr']=param.stderr
elif名称==“衰减”:
params['decay']=参数值
params['decay_stderr']=param.stderr
elif名称=='ampb':
params['ampb']=param.value
params['ampb_stderr']=param.stderr
其他:
params['phaseb']=参数值
params['phaseb_stderr']=param.stderr
印刷品(
参数['phase'],
参数['amp'],
参数['omega'],
参数['decay'],
参数['ampb'],
参数['phaseb'],
参数['phase_stderr'],
参数['amp_stderr'],
参数['omega_stderr'],
参数['decation\u stderr'],
参数['ampb_stderr'],
参数['phaseb_stderr'],
sep=“\t”
)

非常感谢much@PrakashGyawali不用谢我:)如果你认为答案有用,请把它投上去,如果它解决了你的问题,请把它标记为接受。谢谢多谢各位much@PrakashGyawali不用谢我:)如果你认为答案有用,请把它投上去,如果它解决了你的问题,请把它标记为接受。谢谢