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

Python 根据传递给函数的参数动态创建文件名,python,Python,可能重复: 我有以下创建文件list.txt的代码,目前我将文件名硬编码为“list.txt”,是否有一种方法可以根据传递给函数的参数名动态创建文件名,例如。在本例中,list作为参数传递,因此文件名应为list.txt,如果参数为list2.txt,文件名应为list2.txt def filecreation(list): #print "list" with open('list.txt', 'w') as d: d.writelines(list) d

可能重复:

我有以下创建文件list.txt的代码,目前我将文件名硬编码为“list.txt”,是否有一种方法可以根据传递给函数的参数名动态创建文件名,例如。在本例中,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()

你能做些像这样的事情吗

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

有了这个,您可以调用类似filecreationlist的东西testfile.txt,它会将您的列表输出到testfile.txt中。如果我有误解,请告诉我,我会尝试修复它。

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

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

最接近您想要的是评论中发布的Ignacio Vazquez Abrams,因此我建议您查看一下。

我可以做,但在这里列表中,文件名将具有相同的名称?那么为什么要在变量列表中传递两个参数呢!不完全正确。我打赌你可以检查解释器堆栈,并在某些情况下找到它。但是,我的观点是正确的。