【发布时间】:2015-06-24 03:48:09
【问题描述】:
所以我有一个代码可以读取这个 cvs 文件“test.cvs”。脚本的目的是知道什么时候是五包,GK-05 还是 GK-01,然后像这样把颜色加起来,“‘499’,‘GK-05’,‘黑色,银色,橙色,黑蓝' ”。该脚本根据 order_number 读取每一行,如果当前行的 order_number 为空白,则将颜色添加到先前的订单。 Sku 代表包裹类型。请注意,在完成 cvs 中,每三个字段都应该用撇号括起来。
order_number,sku,options
500,GK-01,black
499,GK-05,black
,,silver
,,orange
,,black
,,blue
最终结果应该是:
order_number,sku,options
'500','GK-01','black'
'499','GK-05', 'black, silver, orange, black, blue'
请注意,在完成 cvs 中,每三个字段都应该用撇号括起来。
到目前为止我的代码是这样的:
with open(input_filename, 'r') as input_csv, open(output_filename, 'w', newline = '') as output_csv:
reading = csv.reader(input_csv)
writing = csv.writer(output_csv)
next(reading)
previous_row = next(reading)
for row in reading:
if row[0] == '' and row[2] == previous_row[2]:
print ("current: " + previous_row[0])
print ("This one matches " + row[2])
else:
previous_row = row
我的问题是 previous_row 不会坚持为“499,GK-05,黑色”。它总是下一行,所以什么都不会打印出来。如果我删除 else 条件,那么打印将是:
current: 500
This one matches black
我希望它是 499。在我想出下一部分之前,我正在尝试通过根据前几行更改变量来解决第一个问题。但是,如果有人可以帮助将所有颜色加在一起的下一部分,那将非常感激。
感谢您的帮助。
**编辑 Anand S Kumar 的回答对我帮助很大,但并没有解决将字段包含在 '.
【问题讨论】:
-
GK-01只有一个选项,而GK-05有五个。我想知道sku是否有规则。而sku独一无二?
标签: python variables csv for-loop