Python - zpracování dat ze souboru cyklem - jak uložit poslední dokončený řádek a pokračovat dále
Dobrý den,
když iteruji cyklem textový soubor v python skriptu a skript spadne, tak skript pokračuje od začátku (od první řádky) - já bych potřeboval, aby si skript (cyklus) pamatoval na které řádce skončil a z toho místa pokračoval dál ve zpracování. Jak byste to jednoduše řešili? Děkuji
Dobrý den,
je možné to udělat jako v příkladu níže.
Python načte soubor emails.txt, kde provádí iterace emailů řádku po řádce.
Zpracovaný řádek ukládá do emails_state.txt .
Při opětovném spuštění pokračuje tam kde skript skončil pomocí podmínky if not line in array_state:
když iteruji cyklem textový soubor v python skriptu a skript spadne, tak skript pokračuje od začátku (od první řádky) - já bych potřeboval, aby si skript (cyklus) pamatoval na které řádce skončil a z toho místa pokračoval dál ve zpracování. Jak byste to jednoduše řešili? Děkuji
ODPOVĚĎ
Dobrý den,
je možné to udělat jako v příkladu níže.
Python načte soubor emails.txt, kde provádí iterace emailů řádku po řádce.
Zpracovaný řádek ukládá do emails_state.txt .
Při opětovném spuštění pokračuje tam kde skript skončil pomocí podmínky if not line in array_state:
Show english version
def getEmail(self):
# if exist file
try:
f = open("emails_state.txt")
# create temp file
except IOError:
with open("emails_state.txt", "w") as create_file:
create_file.write('')
# get first and last line
with open("emails_state.txt", "r") as file:
first_line = file.readline()
for last_line in file:
pass
# create array
with open("emails_state.txt", "r") as file:
array_state = file.readlines()
# file loop
fileHandler = open ("emails.txt", "r")
while True:
line = fileHandler.readline()
if not line :
break;
if not line in array_state:
print(line.strip())
with open("emails_state.txt", "a") as es:
es.write(line)
time.sleep(1)
# file close
fileHandler.close()