Выделить из строки текст после ":" и записать в текстовый файл
Есть текстовый файл, где записаны данные пользователей. Мне нужно отделить пароль от почты: - пароль записан после двоеточия (:); необходимо, чтобы программа брала из текстового документа по одной строке, и то, что после ":" записывала в новый текстовый файл. Я пытался это сделать но мой код сохраняет в текстовый файл только 1 последний пароль. Пожалуйста, помогите.
import time
time.sleep(5)
a = open("mybase.txt")
for Line in a:
file_1 = open("sorted.txt", "w")
file_1.write(Line[Line.find(':')+1:])
file_1.close()
Если после оператора for не писать те 3 строки? а написать
print(Line[Line.find(':')+1:])
будут выведены все пароли после ":". Как сделать, чтобы их в текстовый документ записало?
Ответы (1 шт):
Открывайте файл на запись до цикла. И лучше делайте это с помощью with, тогда не нужно будет закрывать файл, он сам закроется при выходе управления из блока кода:
import time
time.sleep(5)
with open("mybase.txt") as a:
with open("sorted.txt", "w") as file_1:
for Line in a:
file_1.write(Line[Line.find(':')+1:])
Сейчас вы на каждой итерации цикла открываете файл и целиком перезаписываете его. Поэтому в файле остаётся только результат работы последней итерации цикла.