Python 2.7 迭代文本文件并生成字典时出错

Python 2.7 迭代文本文件并生成字典时出错,python-2.7,ssl,dictionary,ssl-certificate,Python 2.7,Ssl,Dictionary,Ssl Certificate,我创建了一个文本文件,其中填充了我创建的爬虫程序中的域(我希望如此)。 稍后,我尝试迭代文本文件并运行它和函数,然后给我域证书。出现了一个错误,我不明白为什么它不起作用。 任何帮助都会很好,谢谢 d1={} with open('found.txt','w') as f: f.writelines(url+ '\n' for domain in found) f.close() for domain in open('found.txt','r'): domain=

我创建了一个文本文件,其中填充了我创建的爬虫程序中的域(我希望如此)。 稍后,我尝试迭代文本文件并运行它和函数,然后给我域证书。出现了一个错误,我不明白为什么它不起作用。 任何帮助都会很好,谢谢

d1={}
with open('found.txt','w') as f:
    f.writelines(url+ '\n' for domain in found)
    f.close()



for domain in open('found.txt','r'):
    domain=str(domain)
    domain="http://" + domain + "/" 
    #print domain
    try:
        cert=ssl.get_server_certificate((domain, 443))
    except:
        continue 
    if domain not in d1:
        d1[domain]=cert
    f.close()
print d1
我使用try和except绕过域错误


字典显示为空,并且创建的文本文件不存在。有什么提示吗?

查看它正在失败的域会有所帮助。在调用
ssl.get\u server\u certificate()
并重新运行之前,尝试添加
print(domain)
。此外,您正在将
\n
添加到
found.txt
中的每一行,但在处理文件时不会将其剥离。因此,您的域中可能有一个换行符。首先尝试调用
domain.rstrip()
。我找到了出现问题的域。它不存在。为了绕过这些错误,我使用了try和except。它现在可以工作了,但是当我打印字典时,它是空的,并且文件“find.txt”不存在。
f.writelines(url+'\n'表示find中的域)
不要使用bare
除了:
。记录所有错误以进行调试。