将列名称标题插入Python列表

时间:2015-06-10 14:15:16

标签: python list csv dictionary

我正在尝试将列标题插入到Python列表中。我使用的csv文件没有列名,数据用逗号分隔。我正在尝试编写此程序,以便每次在ArcGIS中制作每周地图时都不必将列名插入csv文件中。如果需要,我也可以将csv变成字典。无论哪种方式都没问题。到目前为止,我有这个代码,它生成一个可用的数据集。我知道如何按列名引用字典中的列。但是,相同的方法似乎不适用于将列名插入列位置。

import os
os.chdir('C:\Users\####\Desktop')
fileData = open('SOUTH_06_01_2015_SECFILE.CSV','rb')

def dataHeader():
    headerLine = fileData.readline()
    valueList = headerLine.split(',')
    yield valueList

def dataBody():
    for line in fileData.readlines():
        segmentLine = line.split(',')
        yield segmentLine[0:6]

def dataPrinter():
    gen1 = dataHeader()
    gen2 = dataBody()
    print'\n'
    for row in gen2:
        print row
dataPrinter()

1 个答案:

答案 0 :(得分:0)

假设用户插入列的名称而csv文件没有列名,这应该可以完成这项工作。

def dataHeader(columns_no):
    columns = []
    for i in range(columns_no):
        text = raw_input("Enter column #%d name> " % i)
        columns.append(text)
    return columns


def dataBody(columns_no):
    segmentLines = []
    for line in fileData.readlines():
        segmentLine = line.split(',')
        segmentLines.append(segmentLine[:columns_no])
    return segmentLines


def dataPrinter():
    columns_no = 6
    gen1 = dataHeader(columns_no)
    gen2 = dataBody(columns_no)
    print ','.join(gen1)
    for row in gen2:
        print ','.join(row)


dataPrinter()