我目前有一个csv,包含以下列:
id, width, height, item_id, design
我想附加到这个文件中,并创建一个新行来填充这些列中的每一列。当我尝试它时,让我们说";在这里测试";它将t、e、s、t等放在每一行中。我想把数据放在id,width,height separte中的例子";新id"新宽度";,etc
到目前为止,我的代码是:
import csv
with open('design_products_view.csv') as design_file, open('templates_view.csv') as templates, open('templates_view.csv', 'a') as templatesToWrite:
designs = list(csv.reader(design_file, delimiter=','))
template_files = list(csv.reader(templates, delimiter=','))
containsProduct = "Circle"
writer = csv.writer(templatesToWrite)
for row in designs:
if containsProduct in row[1]:
rowValue = row[1].split("'")[0]
for row in template_files:
if row[1] != "width":
if rowValue in row[1] and row[3] == "8":
print(row[1])
writer.writerow("test here")
writerrow只接受一个参数。知道我该怎么做吗?
之所以会发生这种情况,是因为writerow
希望接收一个Iterable,就像list
一样。Python将strings
视为类型为char
的可迭代对象,因此如果您键入"hello"
,它将被处理为['h', 'e', 'l', 'l', 'o']
。
尝试在writerow
函数中使用list
:
writer.writerow([5, 60, 55, 4, 'metallic'])