Я пытаюсь создать программу, которая блокировала бы определенные веб-сайты в течение определенного рабочего времени. Сначала я проверяю изменения в файле hosts (находится здесь C: \ Users \ Alberto \ Documents \ Atom \ web-blocker), который я скопировал в тот же файл, что и моя программа, перед тем как изменить основной файл hosts. Однако, несмотря на то, что мой сценарий позволяет мне правильно распечатать сообщение, когда я нахожусь в рабочее время или нет, проблема в том, что список веб-сайтов не распечатывается в локальном файле hosts. Также я запускаю программу от имени администратора.
Вот мой код:
import time
from datetime import datetime as dt
hosts_temp="hosts"
hosts_path=r"C:\Windows\System32\drivers\etc\hosts"
redirect="127.0.0.1"
website_list=["www.facebook.com","facebook.com","youtube.com","www.youtube.com"]
while True:
if dt(dt.now().year,dt.now().month,dt.now().day,6) < dt.now() <
dt(dt.now().year,dt.now().month,dt.now().day,19):
print("Working hours, get back to work you future data scientist!")
with open(hosts_temp,"r+") as file:
content=file.read()
for website in website_list:
if website in content:
pass
else:
file.write(redirect+" "+ website +"\n")
else:
with open(hosts_temp, 'r+') as file:
content=file.readlines()
file.seek(0)
for line in content:
if not any(website in line for website in website_list):
file.write(line)
file.truncate()
print("Fun hours...")
time.sleep(5)
Чего мне не хватает, чтобы изменить файл локальных хостов? Заранее благодарю за помощь.