根据传递给函数的参数动态创建文件名

时间:2012-12-31 19:09:08

标签: python

  

可能重复:
  python obtain variable name of argument in a function

我有以下代码创建文件list.txt,目前我将文件名硬编码为'list.txt',有没有办法我们可以根据传递给函数Eg的参数名称动态创建文件名在这个例子中,..list作为参数传递,所以文件名应该是list.txt,如果参数是list2.txt,文件名应该是list2.txt .....

def filecreation(list):
    #print "list"
    with open('list.txt', 'w') as d:
        d.writelines(list)

def main():
    list=['206061\n', '202086\n', '206062\n']
    filecreation(list)

if __name__ == '__main__':
    main()

2 个答案:

答案 0 :(得分:7)

你可以这样做:

def filecreation(alist, filename):
    #print "alist"
    with open(filename, 'w') as d:
        d.writelines(alist)

有了这个,你可以调用像filecreation(list,“testfile.txt”)这样的东西,它会将你的列表输出到testfile.txt中。如果我误解了,请告诉我,我会尽力解决。

答案 1 :(得分:3)

函数无法知道作为参数传递的变量是什么。这不是Python的工作方式。甚至可能没有任何变量:

filecreation(['206061\n', '202086\n', '206062\n']) # What is the argument "name"?

最接近你想要的是评论中发布的linked question Ignacio Vazquez-Abrams,所以我建议你去看看。