Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我复制我的讲师时';s的网站屏蔽代码,为什么即使他的作品和我的作品没有';T_Python - Fatal编程技术网

Python 当我复制我的讲师时';s的网站屏蔽代码,为什么即使他的作品和我的作品没有';T

Python 当我复制我的讲师时';s的网站屏蔽代码,为什么即使他的作品和我的作品没有';T,python,Python,所以我试图编写一个网站拦截器。当我完成代码时,我得到一个权限错误。我正在使用Windows电脑。你能告诉我我做错了什么或者帮我解决问题吗?先谢谢你 import time from datetime import datetime as dt hosts_path = r"C:\Windows\System32\drivers\etc\hosts" redirect = "127.0.0.1" website_list = ["https://

所以我试图编写一个网站拦截器。当我完成代码时,我得到一个权限错误。我正在使用Windows电脑。你能告诉我我做错了什么或者帮我解决问题吗?先谢谢你

import time
from datetime import datetime as dt

hosts_path = r"C:\Windows\System32\drivers\etc\hosts"
redirect = "127.0.0.1"
website_list = ["https://www.youtube.com/", "youtube.com"]
final_list = [redirect + " "+ i for i in website_list]
final_string_block = "\n".join(final_list)

while True:
if dt(dt.now().year, dt.now().month, dt.now().day, 8,) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,18):
    print("Within Time...")
    with open(hosts_path, "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_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)
        file.truncate()
time.sleep(5)
导入时间
从日期时间导入日期时间作为dt
hosts\u path=r“C:\Windows\System32\drivers\etc\hosts”
重定向=“127.0.0.1”
网站_列表=[”https://www.youtube.com/“,”youtube.com“]
最终列表=[redirect+“”+i代表网站列表中的i]
最终\u字符串\u块=“\n”。加入(最终\u列表)
尽管如此:
如果dt(dt.now().year,dt.now().month,dt.now().day,8,)
这就是错误:

Traceback (most recent call last):
  File "c:\Users\chris\.vscode\Realistic Programs\tempCodeRunnerFile.python", line 13, in <module>
    with open(hosts_path, "r+") as file:
PermissionError: [Errno 13] Permission denied: 'C:\\Windows\\System32\\drivers\\etc\\hosts'
回溯(最近一次呼叫最后一次):
文件“c:\Users\chris\.vscode\reality Programs\tempCodeRunnerFile.python”,第13行,在
打开(主机路径,“r+”)作为文件:
PermissionError:[Errno 13]权限被拒绝:“C:\\Windows\\System32\\drivers\\etc\\hosts”

因为hosts文件适用于所有需要管理权限才能写入的用户。尝试以管理员身份运行python,您应该能够编辑该文件。

被拒绝的权限来自Windows,而不是python。您以管理员身份登录的用户没有访问该文件的权限。如何以管理员身份运行python?最简单的方法是以管理员身份运行用于运行脚本的程序,无论是IDE、cmd还是powershell。。。