为什么我去“如果没有(网站列表中的行)”时出现错误,为什么我需要网站变量?呵呵帮助
当我执行“ 如果没有(网站列表中的行) ”时,该行中会弹出错误,为什么我需要在其中添加另一个变量“ website”为了执行这个?顺便说一下,我是一个初学者。
我在工作时间内创建了一个拦截器应用程序。
import time
import numpy as np
from datetime import datetime as dt
hosts_temp = "hosts" #temporary
hosts_path = r"C:\Windows\System32\drivers\etc\hosts"
redirect = "127.0.0.1"
website_list = np.array(["www.facebook.com", "facebook.com", "fb.com"])
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, 9):
print("Working hours")
with open(hosts_temp, "r+") as file:
content = file.read()
for debsite in website_list:
if debsite in content:
pass
else:
file.write(redirect + " " + debsite + '\n')
else:
with open(hosts_temp, 'r+') as file:
content = np.array(file.readlines())
file.seek(0)
for line in content:
if not any(website in line for website in website_list): # I CAN'T UNDERSTAND THIS LINE
# ^ cant understand this
file.write(line)
file.truncate()
print("Fun hours")
time.sleep(3)
答案 0 :(得分:1)
if not any(website in line for website in website_list)
此行的意思是“如果website_list
不包含任何website
使得line
包含website
”
any
函数接受一个可迭代对象,并检查是否至少有一个元素具有真值。
website in line for website in website_list
是True
/ False
系列的生成器,其中具有索引True
的{{1}}表示idx
包含{{1} }在索引line
website
不起作用,因为idx
返回if not any(line in website_list)
或line in website_list
。它的含义也不同,True
表示“ False
包含至少一个等于line in website_list
的元素”