Подскажите как на python3 сделать скрипт задача которого в следующем:
Есть xls файл, который состоит из трёх колонок. Во второй колонке содержатся числа, которые идут от 1 до N, затем снова от 1 до M и т.д., и повторяется это количество раз n, пока не закончатся все строки в файле.
Создаем первый файл для записи, в который записываем все три колонки, где вторая колонка содержит от 1 до N, далее создаем второй файл для записи, в который записываем все три колонки, где вторая колонка содержит от 1 до M, и т.д. Создаем количество файлов для записи равное n.
Текущий файл:
t j No
1 1 3
2 2 7
3 3 9
4 4 12
5 5 11
6 6 9
7 7 4
8 8 9
9 9 10
10 10 10
11 11 7
12 12 7
13 13 4
14 14 12
15 15 5
16 16 8
17 1 0
18 2 0
19 3 0
20 4 0
21 1 0
22 2 0
23 3 0
Должно выглядеть так в отдельных файлах:
В первый файл записывается:
t j No
1 1 3
2 2 7
3 3 9
4 4 12
5 5 11
6 6 9
7 7 4
8 8 9
9 9 10
10 10 10
11 11 7
12 12 7
13 13 4
14 14 12
15 15 5
16 16 8
Во второй файл записывается:
t j No
17 1 0
18 2 0
19 3 0
20 4 0
В третий файл записывается:
t j No
21 1 0
22 2 0
23 3 0
Надеюсь, что максимально подробно объяснила.
Заранее всем спасибо!
Код для записи в первый файл:
with open('raspak.xls') as f: lines = f.readlines() name = 1 name = str(name) f_out = 'step_' + name + '.xls' f = open(f_out, 'w') name = int(name) name = name + 1 title = [ i.strip() for i in lines[0].split('\t') ] print(title) indexes = [] for i in title: indexes.append(title.index(i)) print(indexes) for line in lines[:2]: l = [i.strip() for i in line.split('\t')] tmp = [] for i in l: tmp.append(i) print(tmp) output_data = '\t'.join(tmp) f.write(output_data + '\n') for line in lines[2:]: l = [ i.strip() for i in line.split('\t') ] #print(l) tmp1 =[] if l[1] != '1': for i in indexes: tmp1.append(l[i]) print(tmp1) else: break f.write('\t'.join(tmp1) + '\n') f.close()
with open('raspak.xls') as f: lines = f.readlines() d = len(lines) print(d) name = 1 while True: name = str(name) f_out = 'step_' + name + '.xls' f = open(f_out, 'w') name = int(name) name = name + 1 title = [ i.strip() for i in lines[0].split('\t') ] print(title) indexes = [] for i in title: indexes.append(title.index(i)) print(indexes) for line in lines[:2]: l = [i.strip() for i in line.split('\t')] tmp = [] for i in l: tmp.append(i) print(tmp) output_data = '\t'.join(tmp) f.write(output_data + '\n') for line in lines[2:]: l = [ i.strip() for i in line.split('\t') ] print(l) tmp1 =[] if l[1] == '1': continue else: for i in indexes: tmp1.append(l[i]) #print(tmp1) #else: #break f.write('\t'.join(tmp1) + '\n') if not lines: break f.close()