【发布时间】:2015-06-10 14:15:15
【问题描述】:
我正在尝试将列标题插入 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()
【问题讨论】:
-
是的,在我使用我发布的代码时,我没有打印 gen1。我只是在使用 gen2 的输出。
-
那么您要做的是编写一个程序,从用户那里获取名称并将它们设置为您的 csv 文件的标题?
-
是的,这就是我想做的事情。只打印出 gen1 和 gen2 只打印数据集的第一行,而数据集的其余部分在下面,没有对列的任何引用。
-
所以基本上,此时仅调用 headerLine 几乎没有用。重命名 headerLine 中的列会从数据集主体中删除该数据,这是不好的。当然,我可以将 headerLine 转换为列名,但是那行数据会丢失。
-
对不起,我的意思是 valueList 不是 headerLine/
标签: python list csv dictionary