1 回答

TA貢獻1796條經驗 獲得超7個贊
您可以使用itertools.groupby:
import itertools, csv
data = list(csv.reader(open('test.csv'), delimiter=';'))[1:]
new_d = [[a, list(b)] for a, b in itertools.groupby(data, key=lambda x:x[1]==' A')]
new_groups = [new_d[i][-1]+new_d[i+1][-1] for i in range(0, len(new_d), 2)]
for i, a in enumerate(new_groups, 1):
with open('test_{}.csv'.format(i), 'w') as f:
write = csv.writer(f, delimiter=';')
write.writerows([['id', 'type', 'name']]+a)
test_1.csv:
id;type;name
1; A; ASW23
2; C; SDF92
3; D; SDI22
4; D; ASD00
5; C; WPE03
6; D; PPO30
test_2.csv:
id;type;name
7; A; WER34
8; C; FHH88
9; C; FGE45
test_3.csv:
id;type;name
10; A; DFQ12
11; G; WWQ89
12; C; YDT63
13; D; QTT21
添加回答
舉報