我正在尝试将列标题插入到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()
答案 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()