行从文件中作为单独的字符串用于函数



我发现我的问题类似的例子,但我不能成功地在我的例子中实现。

我在每行有一个URL域的文件。我想对文件中的每个域执行一个函数。

这是我的代码:

hostname = [line.rstrip() for line in open('domains')]
def checkcert():
with socket.create_connection((hostname, port)) as sock:
with context.wrap_socket(sock, server_hostname = hostname) as ssock:

certificate = ssock.getpeercert()
certExpires = datetime.datetime.strptime(certificate['notAfter'], '%b %d %H:%M:%S %Y %Z')
for line in hostname:
checkcert()

现在主机名变量同时包含所有的域。所以如果我输出这个变量,它会给我完整的文件。

剥离文件的最简单方法是什么,以便我可以检查每个文件的证书?我需要在循环中迭代还是有更简单的方法?

提前谢谢你。

我不知道你的意思是"更好的方法"。如果您希望更快,请尝试使用多处理或多线程并行化代码。例如

with ThreadPoolExecutor(max_workers = 10) as executor:
results = executor.map(checkcert, hostname)

for result in results:
print(result)

你应该会看到一个巨大的性能提升,也许是数量级的。

相关内容

  • 没有找到相关文章

最新更新