我有以下代码创建文件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()
答案 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,所以我建议你去看看。