Как разделить строки до и после знака 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')