我有一个存储在SET中的数据(url)。我想获取该数据并从中创建文本文件。
我后来想要创建一个字典,其中来自文本文件的数据是密钥,证书就是值。
这是我的代码。发现是集合。
d1={}
f=open('found.txt','w')
f.write(found) # error appears here
f.close()
for domain in open('found.txt','r'):
cert=ssl.get_server_certificate((domain, 443))
if domain not in d1:
d1[domain]=cert
该集合包含已被抓取的域。
答案 0 :(得分:1)
这实际上取决于你想要如何格式化文本文件 - 最简单的是,你要编写每个元素然后再换行。你可以这样做:
with open('found.txt', 'w') as f:
f.writelines(url + '\n' for url in found)
这里我使用了一个上下文管理器来管理文件关闭。我建议您养成在处理文件时始终使用它们的习惯。
您的错误正在发生,因为file.write
要求传入字符串。你传递了set
,它不知道如何处理。只更改原始代码的一行的替代方法是:
f.write('\n'.join(found))
但是,总的来说,我更喜欢第一种方式。您可以将较少的中间数据存储在内存中,因此占用空间较小。