почему в файле сохраняется только последняя строка?
if '.194.100' in output:
# with open('DHCP.txt', 'w') as file:
# file.write(output)
for line in ip_mac_lines:
if '0100' not in line:
ok = line.split()
f = operator.itemgetter(1)
okk = str(f(ok))
okk = okk.replace("'", "")
okk = re.sub(r'[\(\)]', '', str(okk))
okk = okk.replace(".", "")
if '01' in okk:
okk = okk[2:]
#print(okk)
mac = ':'.join(okk[i:i + 2] for i in range(0, len(okk), 2))
#send_email(mac)
with open('DHCP010101.txt', 'w') as file:
file.write(mac)
if '00:23' in mac:
print(mac)
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Вообще в комментариях уже сказали, что вы ошиблись в методе открытия файла (не w, a a).
Но если вы хотите, чтобы при каждом запуске файл очищался, то есть 2 варианта:
- Собственно, намеренно выделить строку для очищения файла:
with open('DHCP010101.txt', 'w'): pass
if '.194.100' in output:
# ваш остальной код, в котором файл открывается `open('DHCP010101.txt', 'a')`
# вот так
with open('DHCP010101.txt', 'a') as file:
file.write(mac)
- Или так:
file = open('DHCP010101.txt', 'w')
if '.194.100' in output:
# ваш остальной код без открытий файла.
# вот так
file.write(mac)
file.close() # не забудьте эту строку цикла