编写多个.csv文件

时间:2012-11-04 01:41:14

标签: python csv operand

我有一个字典,item_dictionary[0]对应data[0]item_dictionary[1]对应data[1]

item_dictionary = {'10350':'cat', '560':'dog'}
names = item_dictionary.values()

data = [[1, 2, 3, 4], [5, 6, 7]]

我尝试将data[0]data[1]中的项目写入不同的.csv文件,如下所示:

def writer(item):
    q = data.index(item)    
    myfile = open('%r.csv', 'wb') % names[q]
    wr = csv.writer(myfile)
    wr.writerows(data[q])
    myfile.close()

z = [writer(x) for x in data]

这将返回错误:

  

追踪(最近的呼叫最后):
    文件“”,第1行,在中     文件“”,第3行,在作者中   TypeError:%:'file'和'str'`的不支持的操作数类型。

我对错误的'str'部分的猜测是names[q]返回,比如'cat'而不是cat。但是,我不知道要使用哪种操作数类型而不知道如何解决str问题,那么有人可以帮助我吗?感谢。

1 个答案:

答案 0 :(得分:3)

open('%r.csv', 'wb') % names[q]应为open('%r.csv' % names[q], 'wb')

在前一种情况下,您打开一个名为“%r.csv”的文件,以便以二进制模式写入,然后尝试使用names[q]的内容对文件对象进行模数化。 file个对象不支持模运算符,因此您获得TypeError

在后一种情况下,我们使用模块运算符调用字符串format的{​​{1}}方法,从而生成一个传递给%r.csv函数的字符串。


顺便说一下,您可能想要考虑另一种将名称与数据相关联的方法 - 您可以将数据与数据一起存储在元组,字典或类实例中:

open