如何根据集合中的数据创建文本?

时间:2014-05-09 05:01:18

标签: python dictionary text-files

我有一个存储在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

该集合包含已被抓取的域。

1 个答案:

答案 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))

但是,总的来说,我更喜欢第一种方式。您可以将较少的中间数据存储在内存中,因此占用空间较小。