2014-01-15 31 views
0

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

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] 

现在,我想这样做是为了在TemplateFile在某一行存储tmp,在同一列“价格”恰好是一个方便的方法。我一直在阅读CSV包,并且writeDictWrite,但我只是发现不可能遵循的文档。

我想有最终是这样的事情对我的最后一行:

TemplateFileWriter[myPrefferedRow]['Price'] = tmp 

我是不是想在这里实现的东西是不可能的,或者这是可以做到与CSV包?

+0

“存储tmp”是什么意思? –

+0

@JoelCornett对不起,我更改了我的文章而没有更新所有内容。我指的是第一个代码块的最后一个变量,现在在那里:) – Speldosa

+0

啊。你能提供示例输入和输出吗?只需5-10行就足够了。 –

回答

1

csv.readercsv.writer只读取和写入行,所以喜欢你用来list(csv.reader(...))读取行,并把它们变成一个列表列表中,可以为输出创建列表(或字典)列表,根据需要修改条目,然后使用TemplateFileWriter.writerows()将其输出到文件。

+0

我会试一试。 – Speldosa

0

numpy封装具有loadtxt功能可能会做你想要的...

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

这一个似乎做了什么行'InputFileReader [3] [3]'在我的代码做,或者我在这里错过了什么? – Speldosa

+0

我对cvs阅读器没有经验,但是该函数应该会给出ASCII文件中第三行的第三个元素。标有'#'的标头会自动忽略。 – asPlankBridge

相关问题