在Python lis中插入列名头

2024-06-10 14:54:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在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()

Tags: 文件csv数据for字典osdefline
1条回答
网友
1楼 · 发布于 2024-06-10 14:54:07

假设用户插入列的名称,而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()

相关问题 更多 >