पृष्ठभूमि: मैं urllib.urlretrieve
उपयोग कर रहा हूँ, के रूप में urllib*
मॉड्यूल में किसी अन्य समारोह के लिए विरोध किया, हुक समारोह समर्थन की वजह से (नीचे reporthook
देखें) .. जो एक टेक्स्ट प्रदर्शित करने के लिए प्रयोग किया जाता है प्रगति पट्टी। यह पायथन> = 2.6 है।कैसे urllib.urlretrieve में 404 त्रुटि को पकड़ने के लिए
>>> urllib.urlretrieve(url[, filename[, reporthook[, data]]])
हालांकि, urlretrieve
कि यह HTTP अनुरोध की स्थिति का पता लगाने का कोई तरीका नहीं छोड़ देता है तो गूंगा है (उदाहरण के लिए: यह 404 या 200 था?)।
>>> fn, h = urllib.urlretrieve('http://google.com/foo/bar')
>>> h.items()
[('date', 'Thu, 20 Aug 2009 20:07:40 GMT'),
('expires', '-1'),
('content-type', 'text/html; charset=ISO-8859-1'),
('server', 'gws'),
('cache-control', 'private, max-age=0')]
>>> h.status
''
>>>
हुक की तरह समर्थन के साथ एक दूरस्थ HTTP फ़ाइल डाउनलोड करने के लिए सबसे अच्छा ज्ञात तरीका क्या है और एक सभ्य HTTP त्रुटि हैंडलिंग (प्रगति बार दिखाने के लिए)?
आपके अनुरोध पर HTTP स्थिति प्रदान नहीं करना शायद stdlib में एक बग माना जाना चाहिए (लेकिन नीचे बेहतर लाइब्रेरी, अनुरोध, नीचे देखें) –