我正在考虑使用数据创建带有“日期”和“关闭”字段的命名元组,然后在计算后添加“指标”和“信号”的值。
你不能。
如果你真的想要属性样式的访问,动态添加任意属性,方法是使用从object
. 这正是类实例默认所做的。
namedtuple
除此之外,还有一组固定的字段,作为每个类的一部分namedtuple
,可以通过索引和名称访问这些字段。如果您想稍后添加新字段,您不希望它们被修复。所以,不要使用namedtuple
.
但是,我认为您不需要属性访问或索引访问。你真正想要的是密钥访问。换句话说,一个dict
.
如果您使用标准库中的csv
模块而不是尝试splitlines
手动使用和解析事物,这不仅容易,而且微不足道。例如:
with open('input.csv', 'rb') as f:
d = list(csv.DictReader(f))
for thing in d:
# whatever you want, including setting thing['Indicator'], etc.
with open('output.csv', 'wb') as f:
writer = csv.DictWriter(f, ('Date', 'Close', Indicator', 'Signal').
extrasaction='ignore', delimiter='\t')
writer.writerows(d)