我是一名专业的网络开发人员,在业余时间通过 MOOC 学习 Python。我真的很喜欢它,并希望获得一些关于如何编写更多“pythonic”代码的提示。
我基本上想读取在 nodeID 和 categoryName/ID 之间具有一对多关系的 csv。输入文件将如下所示:
NODEID CATID CATNAME
3 4 Plastic
3 5 Sharks with Lasers
4 7 Widgets
我希望得到的输出是:
NODEID CATNAME
3 Plastic, Sharks with Lasers
4 Widgets
我就是这样做的,但我知道这不是最有效的方法:
import csv # import the csv module
import sys # import the sys module
from collections import defaultdict
inputFile = open('term_data.csv', 'rb')
try:
reader = csv.reader(inputFile)
nodeDict = defaultdict(dict)
for row in reader:
colnum = 0
# nodeDict[nodeid][catid] = catname
nodeDict[row[0]][row[1]] = row[2]
finally:
inputFile.close()
f = open('terms.txt', 'w')
for node, nodeVals in nodeDict.items():
f.write(node + ';')
#sys.stdout.write(node + ';')
itera = 0
for cat, name in nodeVals.items():
f.write(name)
itera += 1
if (itera == len(nodeVals.items())):
f.write(';' + '\n')
else:
f.write(',')
任何帮助或批评将不胜感激!