我正在尝试编写一个函数,该函数获取 CSV 文件的标题并将其存储为列表,稍后将很有用:
def getHeader(filename, headername):
import csv
charList = ['a', 'b', 'c', 'd', 'e', 'A', 'B', 'C', 'D', 'E', 'F'] <<<---a lot longer
headercsv = open(filename, 'r', newline = '')
headerreader = csv.reader(headercsv, delimiter = ',')
for row in headerreader:
if row[0][0] in charList:
headername = row
headercsv.close()
return headername
然后我执行以下操作:
thisHeader = []
getHeader('csvfile.csv', thisHeader)
如果我在 shell 中尝试这个,它会返回正确的信息,但是当我尝试查看变量中包含的信息时thisHeader
,它只返回[]
一个空白列表。
我还定义了另一个函数来汇总每个队列的每个条目的人口信息。需要用到上面函数中得到的header,定义如下:
def newPopCount(filename, fileheader, popholder):
import csv
cohorts = []
for i in range (3, len(fileheader)):
cohorts.append(fileheader[i])
for i in range (len(cohorts)):
popholder.append(0)
popcsv = open(filename, 'r', newline = '')
popreader = csv.reader(popcsv, delimiter = ',')
for row in popreader:
counter = 0
if row[0] == fileheader[0]:
continue
else:
for i in range(3, len(fileheader)):
popholder[counter] += int(row[i])
counter += 1
popcsv.close()
return popholder
我在另一个函数中定义了这些函数,以便只调用带有文件名的最外层函数,test('csvfile.csv')
然后使用一些打印语句来评估代码是否正在执行它应该做的事情,方法是将从一个函数获得的信息传递给其他功能 - 他们不是。