我写了一个"小"用于下载我关注的播客的最新剧集的python中的播客下载程序ppod。实际上有2个涉及互联网连接的主要步骤:下载播客的RSS XML页面,并从解析的XML页面下载音频文件。这些步骤中的任何一个都可以(并且经常会)超时,但对于我的生活,我似乎无法处理此超时的预期。我使用以下内容来获取XML文件:
import urllib.request
from socket import timeout
for i in range(1,5):
try:
f = urllib.request.urlopen( url, timeout = 15)
break
except timeout:
pass
我不断收到此错误:
Traceback (most recent call last):
File "/usr/local/bin/ppod", line 293, in <module>
pod.getXML()
File "/usr/local/bin/ppod", line 114, in getXML
content = f.read().decode('UTF-8').strip()
File "/usr/lib/python3.5/http/client.py", line 446, in read
s = self.safe_read(self.length)
File "/usr/line/python3.5/http/client.py", line 592, in _safe_read
chunck =self.fp.read(min(amt, MAXAMOUNT))
File "/usr/lib/python3.5/socket.py", line 575, in readinto
reaturn self._sock.recv_into(b)
socket.timeout: timed out
我还尝试不对except
进行排位,并且except socket.timeout
使用import socket
代替from socket import timeout
,我仍然没有获得期望的行为。
如何处理来自socket.timeout
的{{1}}例外?
答案 0 :(得分:0)
查看堆栈跟踪 - 您发布的代码中没有任何代码存在于堆栈跟踪中。您的代码中的问题不在此代码段中。