【发布时间】:2013-05-25 12:32:29
【问题描述】:
您好,我正在尝试编写一个小辅助函数,以将对象以自己的名称保存到 csv。
我正在处理数据数组,这是一种解决方法,可以帮助轻松可视化数组以帮助编辑它。
我面临的挑战是我不清楚如何让函数通过x 变量查看下面MWE 中a 的名称。我想做的是将其保存为a.csv。 getattr() 不起作用,所以我很难过。
import random
import csv
def csvit(x):
f=open(name(x)+'.csv','wb'):
writer = csv.writer(f,quotechar='"', quoting=csv.QUOTE_ALL)
[writer.writerow(i) for i in x]
f.close()
a = []
for i in range(10):
t = [random.randint(0,1000) for r in range(10)]
a.append(t)
name(x) 不是一个工作函数,我不知道用什么来代替它。我真的在寻找fun(x) 产生["a"] 的函数
为了完整起见,下面@PhilCooper 的答案似乎可以工作的代码是
import csv
def csvit(x):
tmp = next(key for key,val in globals().items() if val == x and not key.startswith('_'))
f=open('/home/me/Desktop/csvs/'+tmp+'.csv','wb')
writer = csv.writer(f,quotechar='"', quoting=csv.QUOTE_ALL,dialect=csv.excel)
[writer.writerow(i) for i in x]
f.close()
欢迎任何 cmets 或对其进行改进。
【问题讨论】:
-
我真的不明白你想要做什么。简单的
csvit(a)不起作用吗? -
我已经编辑了语法错误..
-
感谢@PeterVaro 感谢编辑
-
嗨@poke。 csvit(a) 不起作用,因为
name函数是一个填充符 -
澄清一下,问题是如何写一个函数
f使得f(a) == 'a'