这是一个真实世界的程序,它会在你的工作时间屏蔽某些分散注意力的网站,比如Facebook、Youtube等。
null
关于该计划: 我们在这个项目中要做的是,我们将通过你认为分散注意力的网站链接,你在电脑和程序上工作的时间将阻止这些网站。
程序架构:
- 每个系统都有 主办 文件,无论是Mac、Windows还是Linux。 主办 Mac和Linux中的文件:
/etc/hosts
主办 Windows中的文件:
C:WindowsSystem32driversetc
- 主机文件的工作方式: 主机是一个将主机名映射到IP地址的操作系统文件。在这个程序中,我们将把网站的主机名映射到我们的本地主机地址。使用python文件处理操作,我们将在主机中写入主机名。在工作时间结束后删除这些行。
Mac中的主机文件:
# Run this script as root import time from datetime import datetime as dt # change hosts path according to your OS hosts_path = "/etc/hosts" # localhost's IP redirect = "127.0.0.1" # websites That you want to block website_list = [ "www.facebook.com" , "facebook.com" , "dub119.mail.live.com" , "www.dub119.mail.live.com" , "www.gmail.com" , "gmail.com" ] while True : # time of your work if dt(dt.now().year, dt.now().month, dt.now().day, 8 ) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, 16 ): print ( "Working hours..." ) with open (hosts_path, 'r+' ) as file : content = file .read() for website in website_list: if website in content: pass else : # mapping hostnames to your localhost IP address file .write(redirect + " " + website + "" ) else : with open (hosts_path, '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) # removing hostnmes from host file file .truncate() print ( "Fun hours..." ) time.sleep( 5 ) |
Windows用户的特别注意事项: Windows用户需要创建操作系统主机文件的副本。现在在中提供重复文件的路径 东道主 剧本中提到的。
在Mac中调度上述脚本: 要在Mac中调度上述脚本,您必须以root用户身份在终端中打开crontab。
- 在终端中写入以下命令:
sudo crontab -e
你的终端应该是这样的:
- 现在按“i”进入插入/编辑模式,并写入@reboot python_script_路径。
- 先按esc键退出写入模式,然后返回命令模式,现在写入“:wq”,最后按enter键进行验证,以保存选项卡。
- 重启你的系统,看看它的神奇之处。
Windows中的日程安排: 以上脚本的调度是一个小技巧,但我会一步一步地指导你们-
- 首先,将脚本的扩展名从“.py”更改为“.pyw”。
- 现在打开任务调度器。任务计划程序应该如下所示:
你可能会看到网站拦截器已经安排好了,因为我已经在我的计算机上安排了测试。为了在您的计算机上安排网站屏蔽程序,请仔细遵循进一步的计划说明。
- 点击“创建任务”。填写您选择的名称,并标记“以最高权限跑步”。
- 现在转到触发器,选择“启动时”开始任务。
- 转到操作栏,创建一个新操作,并给出脚本的路径。
- 转到“条件栏”并解除电源部分的延迟。
- 按ok,你可以看到预定的脚本。
- 最后重启你的电脑,看看它的神奇之处。
注: 您也可以通过点击run按钮立即进行检查。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END