使用标题名称写入某个CSV行/列

时间:2014-01-15 14:34:15

标签: python csv

我有一堆CSV文件要转换为单个CSV文件,其中每行代表一个原始CSV文件。我正在使用CSV包,我已经知道如何从原始CSV文件中读取条目。我还有一个模板CSV文件,它只包含一行,即我想要创建的单个CSV的标题(包含“Price”,“Date”和“Quantity”等列名)。

with open ('TemplateFile.csv', 'w') as TemplateFile: 
    TemplateFileWriter = csv.writer(TemplateFile, delimiter=';') 
    # I already have references to all the files I want to access in the variable fileList
    for f in fileList:              
        with open(f, 'r') as InputFile:             
            InputFileReader = list(csv.reader(InputFile, delimiter=';'))                        
            # This is where I store the 'Price' variable.           
            tmp = InputFileReader[3][3]

现在,我想要做的是方便地将tmp存储在TemplateFile中的某一行,与“Price”恰好相同的列。我一直在阅读CSV包以及writeDictWrite,但我发现文档无法遵循。

我想拥有的是最后一行的最终结果:

TemplateFileWriter[myPrefferedRow]['Price'] = tmp

我是否试图在这里实现一些不可能的事情,或者这可能与CSV包有关吗?

2 个答案:

答案 0 :(得分:1)

csv.readercsv.writer只读取和写入行,因此就像使用list(csv.reader(...))读取行并将它们放入列表列表一样,您可以创建列表列表(或输出,输出,根据需要修改条目,然后使用TemplateFileWriter.writerows()将其输出到文件。

答案 1 :(得分:0)

numpy包有一个loadtxt函数,可以做你想要的......

import numpy as np
def foo(fname):    
    yourdata = np.loadtxt(fname, delimiter=';')
    return yourdata[3,3]