Я просто перейду к тому, что вы предоставили.
my_str = """A,B,C,1
D,E,F,1;2;3
G,H,I,1;2"""
Сначала я разделю 'my_str' на основе символа новой строки, а затем точку с запятой - то есть
my_list = [strn.split(';') for strn in my_str.split('\n')]
Теперь my_list будет выглядеть примерно так:
[['A,B,C,1'], ['D,E,F,1', '2', '3'], ['G,H,I,1', '2']]
Возможно, это не самое элегантное решение,
for i, sub_list in enumerate(my_list):
if len(sub_list) > 1:
for j in range(1, len(sub_list)):
my_list[i][j] = my_list[i][0][:-1] + my_list[i][j]
Наконец, my_list будет выглядеть так:
[['A,B,C,1'], ['D,E,F,1', 'D,E,F,2', 'D,E,F,3'], ['G,H,I,1', 'G,H,I,2']]
А потом просто распечатайте это.Например,
for sub_list in my_list:
for strn in sub_list:
print(strn)
Вы получите нужный ответ
A,B,C,1
D,E,F,1
D,E,F,2
D,E,F,3
G,H,I,1
G,H,I,2
Редактировать, чтобы записать этот вывод в файл:
with open('new_test_file.txt', 'w') as f:
for sub_list in my_list:
for strn in sub_list:
f.write(strn+'\n')