Как разделить строки до и после знака python

Строки разделяются, но при выводе показываются только то что было до символа. Код:

file = open("accs.txt", "r")
lines = file.read()
a = lines.split(":")
print("Массив - 0")
print(a[0])
print("Массив - 1")
print(a[1])

Что выводится:

Массив - 0
[email protected]
Массив - 1
so618618
[email protected]

Чего я пытаюсь добиться:

Массив - 0
[email protected] (почта)
Массив - 1
so618618 (пароль)

Ответы (2 шт):

Автор решения: Zhihar

у вас в файле несколько строк, которые тоже надо разбить через разделитель, поэтому лучше сделать так:

lines = file.readlines() # считываем файл построчно

for line in lines:
    data = line[:-1].split(':') # -1, чтобы отрезать в конце строки перевод каретки
    print(f'почта: {data[0]}, пароль: {data[1]}') 
→ Ссылка
Автор решения: SdxSdySdz

Лучше использовать конструкцию with

def main():
    with open("accs.txt", "r") as file:
        lines = file.read().split('\n')

        a = []
        for line in lines:
            gmail, password = line.split(":")
            a.append((gmail, password))

        print("Массив - 0")
        print(a[0])
        print("Массив - 1")
        print(a[1])

if __name__ == "__main__":
    main()

Также, возможно, для дальнейшего удобство в массиве a стоит хранить пару (почта, пароль), вместо их чередования. Таким образом, массив становится более однородным.

Вместо этого

a.append(gmail)
a.append(password)

это

a.append((gmail, password))

В таком случае вывод программы:

Массив - 0
('[email protected]', 'so618618')
Массив - 1
('[email protected]', 'kek618618')
→ Ссылка