我想在Python中使用csv
模块修改CSV文件。
在for row in csv
循环中,我有另一个while
循环,其中包含2个语句,我想为每个i
执行一次。以下是代码段,其中list1
和list2
是两个不同的字符串列表。
2个语句位于while
循环中。我想要他们。
f = open('file.csv', 'rb')
csv_in = csv.reader(f, quotechar='"', quoting=csv.QUOTE_NONE)
list_length = len(list1)
for row in csv_in:
i = 0
while i < list_length:
if list1[i] == row[0]:
# Execute the next 2 lines just once for every i
o = open(list2[i], 'wb')
csv_out = csv.writer(o, quotechar='"', quoting=csv.QUOTE_NONE)
final_list = [row[-2] + ';' + row[-1]]
csv_out.writerows([final_list])
i += 1
f.close()
o.close()
答案 0 :(得分:0)
您可以简单地使用另一个if
,例如紧接在这两行之前的if i == 0:
。
答案 1 :(得分:0)
您可以使用已经使用i
的设置保存。
f = open('file.csv', 'rb')
csv_in = csv.reader(f, quotechar='"', quoting=csv.QUOTE_NONE)
# use a set saving which i's already used
set_i = set()
for row in csv_in:
i = 0
while i < list_length:
if list1[i] == row[0]:
# Execute the next 2 lines just once for every i using the set
if not i in set_i:
set_i.add(i)
o = open(list2[i], 'wb')
csv_out = csv.writer(o, quotechar='"', quoting=csv.QUOTE_NONE)
final_list = [row[-2] + ';' + row[-1]]
csv_out.writerows([final_list])
i += 1
f.close()
o.close()