python - 导出函数,以输入变量命名导出文件

标签 python function numpy export

我正在寻找一个导出 Numpy 数组的函数,但使用函数输入的变量名称作为导出文件的名称。像这样的东西:

MyArray = [some numbers]

def export(Varb):
    return np.savetxt("%s.dat" %Varb.name, Varb)

export(MyArray)

这将输出一个名为“MyArray.dat”的文件,其中填充了[一些数字]。我不知道如何执行“Varb.name”位。有什么建议吗?

我是 Python 和编程新手,所以我希望有一些简单的东西我错过了! 谢谢。

最佳答案

我不推荐这样的代码风格,但你可以这样做:

import copy
myarray = range(4)
for k, v in iter(copy.copy(locals()).items()):
    if myarray == v:
        print k

这给出了 myarray 作为输出。要在对导出有用的函数中执行此操作,请使用:

import copy
def export_with_name(arg):
    """ Export variable's string representation with it's name as filename """
    for k, v in iter(copy.copy(globals()).items()):
        if arg == v:
            with open(k, 'w') as handle:
                handle.writelines(repr(arg))

locals()globals() 都给出将变量名作为键、将变量值作为值的字典。

按以下方式使用该函数:

some_data = list(range(4))
export_with_name(some_data)

给出一个名为some_data的文件

[0, 1, 2, 3]

作为内容。

经过测试并与 Python 2.7 和 3.3 兼容

关于python - 导出函数,以输入变量命名导出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334623/

相关文章:

python opencv 按位异或

python - Pyinstaller 和 PyQt5 错误 "Cannot find existing PyQt5 plugin directories"

python - OOP 和 Python 的新手 -- 关于存储大量对象的问题

javascript - 将对象函数传递给对象构造函数

python - 为什么 numpy.random.dirichlet() 不接受多维数组?

python - numpy 条件列表成员元素明智

python - 将 Numpy 数组拆分为等长的子数组

python - 在 Pygame 窗口中锁定鼠标

javascript - Jquery 创建对象

javascript - socket.io 和 vue.js 获取数据