एक स्ट्रिंग में संग्रहीत यूआरएल के साथ पायथन 3 में वेब से एक फ़ाइल कैसे डाउनलोड करें
जब एक से फ़ाइल डाउनलोड करने का प्रयास किया जाता है पायथन 3 में वेब सर्वर, यूआरएल के रूप में एक स्ट्रिंग पास करने से बाइट्स इनपुट की मांग करने में त्रुटि हो सकती है। यह आलेख इस समस्या से बचने और फ़ाइल को सफलतापूर्वक पुनर्प्राप्त करने के लिए कई तरीके प्रस्तुत करता है।
urllib.request.urlopen का उपयोग करना
वेब पेज की सामग्री प्राप्त करने के लिए, urllib का उपयोग करें .request.urlopen(). यह फ़ंक्शन एक प्रतिक्रिया ऑब्जेक्ट लौटाता है, जिसे बाद में एक वेरिएबल में पढ़ा जा सकता है:
import urllib.request
url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read() # a `bytes` object
Using urlib.request.urlretrieve
किसी फ़ाइल को डाउनलोड करने और सहेजने का सबसे सीधा तरीका इसका उपयोग करना है urllib.request.urlretrieve फ़ंक्शन:
import urllib.request
url = 'http://example.com/file.txt'
urllib.request.urlretrieve(url, 'file.txt')
यह विधि निर्दिष्ट URL से फ़ाइल डाउनलोड करती है और इसे स्थानीय रूप से 'file.txt' के रूप में सहेजती है।
का उपयोग करना urlib.request.urlopen शटिल.copyfileobj के साथ
अधिक नियंत्रण के लिए डाउनलोड प्रक्रिया, फ़ाइल जैसी वस्तु को वापस करने के लिए urllib.request.urlopen() का उपयोग करें। फिर इस ऑब्जेक्ट कोshutil.copyfileobj():
import urllib.request
import shutil
url = 'http://example.com/file.zip'
with urllib.request.urlopen(url) as response, open('file.zip', 'wb') as out_file:
shutil.copyfileobj(response, out_file)
डाउनलोड को बाइट्स के रूप में संग्रहीत करना
यदि गति प्राथमिकता है, तो डाउनलोड किए गए डेटा को सीधे बाइट्स ऑब्जेक्ट में संग्रहीत किया जा सकता है और बाद में एक फ़ाइल में लिखा गया है, हालाँकि यह केवल छोटी फ़ाइलों के लिए उपयुक्त है:
import urllib.request
url = 'http://example.com/icon.png'
with urllib.request.urlopen(url) as response, open('icon.png', 'wb') as out_file:
data = response.read() # a `bytes` object
out_file.write(data)
संपीड़ित फ़ाइलों को संभालना
urllib.request.urlopen() का उपयोग संपीड़ित फ़ाइलों को संभालने के लिए भी किया जा सकता है, बशर्ते सर्वर यादृच्छिक पहुंच का समर्थन करता हो:
import urllib.request
import gzip
url = 'http://example.com/archive.gz'
with urllib.request.urlopen(url) as response:
with gzip.GzipFile(fileobj=response) as uncompressed:
file_header = uncompressed.read(64) # a `bytes` object
इन तरीकों में से किसी एक को लागू करके, डेवलपर्स पायथॉन 3 में वेब से फ़ाइलों को सफलतापूर्वक डाउनलोड कर सकते हैं, भले ही यूआरएल एक स्ट्रिंग के रूप में संग्रहीत हो।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3