如何写入CSV文件中的子部分

时间:2014-03-23 10:09:14

标签: python python-2.7 csv

我必须修改以下类。

class csv_writer:
    def __init__(self,filename):
        self.filename = filename

    def write_data(self,variable,value):      
         data = [variable,value]
         with open(self.filename,'a') as c_writer:
             writer = csv.writer(c_writer, delimiter=',', quotechar='|', quoting=csv.QUOTE_NONE, lineterminator='\n')
             writer.writerow(data)

我必须在write_data()中添加一个参数“subsection”,以便它在csv中创建一个子部分并在该子部分下写入数据。

obj = csv_writer('List.csv')
obj.write_data('TEST1','sample1',27)
obj.write_data('TEST2','sample3',12)  # to group2 :)
obj.write_data('TEST1','sample2',34)  # again to group1 :(
obj.write_data('TEST2','sample4',32)  

例如,它必须创建一个类似于上面的CSV文件:

TEST1
sample1,27
sample2,34

TEST2
sample3,12
sample4,32

是否可以使用csv模块实现这种子部分?我做了一个快速搜索,但没有找到任何..

1 个答案:

答案 0 :(得分:0)

从您的源代码中,您似乎想要编写sectionvariablevalue。所以它看起来像INI file格式。如果是这样,请考虑使用ConfigParser模块。 即使你不想要这个,你也可以得到一个写自己的csv_writer课程的提示(就像需要"设置"和#34;写"方法等...)

例如:

import ConfigParser
config = ConfigParser.RawConfigParser()
config.add_section('TEST1')
config.add_section('TEST2')
config.set('TEST1','sample1',27)
config.set('TEST2','sample3',12)
config.set('TEST1','sample2',34)
config.set('TEST2','sample4',32)

with open("./sample.ini", 'w') as fp:
    config.write(fp)

输出:

[TEST1]
sample1 = 27
sample2 = 34

[TEST2]
sample3 = 12
sample4 = 32