मैं एक अजगर शुरुआत कर रहा हूं। मैं फ़ाइलों को डाउनलोड करने के लिए urllib2 का उपयोग कर रहा हूँ। जब मैं एक फ़ाइल डाउनलोड करता हूं, तो मैं एक फ़ाइल नाम निर्दिष्ट करता हूं जिसके साथ डाउनलोड की गई फ़ाइल को मेरी हार्ड ड्राइव पर सहेजना है। हालांकि, अगर मैं अपने ब्राउज़र का उपयोग कर फ़ाइल डाउनलोड करता हूं, तो एक डिफ़ॉल्ट फ़ाइल नाम स्वचालित रूप से प्रदान किया जाता है।पायथन में urllib2 का उपयोग करना। मैं जिस फ़ाइल को डाउनलोड कर रहा हूं उसका नाम कैसे प्राप्त करूं?
यहाँ मेरी कोड का एक सरलीकृत संस्करण है:
def downloadmp3(url):
webFile = urllib2.urlopen(url)
filename = 'temp.zip'
localFile = open(filename, 'w')
localFile.write(webFile.read())
फ़ाइल डाउनलोड ठीक है, लेकिन अगर मैं अपने ब्राउज़र में वैरिएबल "url" में संग्रहीत स्ट्रिंग टाइप करें, वहाँ एक डिफ़ॉल्ट के लिए दिया फ़ाइल नाम है फाइल जब मैं इसे डाउनलोड करता हूं। मैं इस फ़ाइल नाम का उपयोग अपनी डाउनलोड की गई फ़ाइल के लिए 'temp.zip' या जो भी मैं इसे असाइन करता हूं, के लिए नहीं करना चाहता।
फ़ाइल को फ़ाइल नाम से सहेजने के लिए urllib2 (या कुछ अन्य पायथन लाइब्रेरी) का उपयोग कैसे करें, जिसे मैं डाउनलोड करने वाले सर्वर से डाउनलोड कर रहा हूं?
अगर कोई इस प्रश्न को नहीं समझता है, तो कृपया ऐसा कहें, ताकि मैं इसे स्पष्ट करने की कोशिश कर सकूं।
संभव डुप्लिकेट [urllib2 फ़ाइल नाम] (http://stackoverflow.com/questions/163009/urllib2-file-name) –
(
result.url
url
के बजाय के उपयोग पर ध्यान दें): यहाँ मैं इसे कैसे करते हैं फ़ाइल नाम देखने के लिए दो स्थान हैं: सामग्री-डिस्पोजिशन हेडर फ़ील्ड और यूआरएल। हेडर फ़ील्ड को पार्स करने के लिए cgi.parse_header() का उपयोग करें।URL को पार्स करने के लिए urlparse()/urlsplit() और posixpath.basename() का उपयोग करें। उदाहरण के लिए यह उत्तर देखें: http://stackoverflow.com/a/11783319/205212 –