如何保存传递给函数的变量名称的输出文件?

时间:2017-09-25 19:49:30

标签: python variable-names

我需要将函数的输出保存到文件中,该文件的名称为传递给该函数的变量。 我尝试过使用stackoverflow用户的函数。

def var_name(**variables):
    return [x for x in variables]

我的代码如下,
dist是包含不同数组的numpy数组。

MTnum=10
import matplotlib.pyplot as plt
import numpy as np
def Plot(dist, sav=False):
    MT_dat = np.vsplit(dist,MTnum)
    for i,mtdat in enumerate(MT_dat):
        plt.figure(i)
        for j in range(len(mtdat[0])-1):
            plt.plot(MT_dat[i][:,0],MT_dat[i][:,j+1])
        plt.xlabel('time')
        plt.ylabel('distance')
        plt.title('MT_'+str(i+1)+var_name(dist=dist)+'.png')
        if sav == True:
            plt.savefig('MT_'+str(i+1)+var_name(dist=dist)+'.png')
        plt.show()

如果我使用函数Plot(set1),文件将以“dist”后缀而不是“set1”保存。请建议一个正确的方法。

2 个答案:

答案 0 :(得分:0)

没有正确的方法来做到这一点。 dist Plot()参数只是一个名称,将被分配给作为其第一个参数的 value ,它可能根本不是变量 - 例如它可能是文字字符串“foobar”或者返回的函数调用,它被用作调用中的参数。因为你可能知道参数的名称是什么,假设它有一个,只要明确地将其作为dist参数传递。

答案 1 :(得分:0)

你的函数var_name将返回变量中的dict名称,而不是numpy数组。你的数据集是什么结构? 尝试将函数定义var_name(**变量)更改为var_name(*变量)(单个星号)。然后将函数调用更改为var_name(dist)。