मैं ऐसा माहौल मैं डिस्क के लिए कुछ भी नहीं बचा सकता में काम कर रहा हूँ। मुझे टैर फाइलों को खींचने और डिस्क पर सहेजे बिना उन्हें अनजिप करने में सक्षम होना चाहिए। यह असफल लगता है:पायथन का उपयोग करके, आप स्मृति में पूरी तरह से कैसे उतारते हैं?
मैं इस की कोशिश की है, लेकिन यह त्रुटियों tosses:
# fetch.py
from cStringIO import StringIO
import requests
url = "http://example.com/data.tar.gz"
response = requests.get(url)
# ERROR is thrown here. Error shown below
tar = tarfile.open(mode= "r:gz", fileobj = StringIO(response.content))
# This SHOULD break as tar.extract() saves to disk.
# Can't tell because of error on previous line of code.
data = tar.extract()
कोड ब्लॉक में बताया गया है इसके बाद के संस्करण मैं त्रुटि लाइन पर निम्नलिखित ट्रैसबैक मिलती है:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "./importers/bestbuy_fetcher.py", line 23, in download_bestbuy_batch
tar = tarfile.open(mode= "r:gz", fileobj = StringIO(response.content))
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tarfile.py", line 1662, in open
return func(name, filemode, fileobj, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tarfile.py", line 1711, in gzopen
**kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tarfile.py", line 1689, in taropen
return cls(name, mode, fileobj, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tarfile.py", line 1568, in __init__
self.firstmember = self.next()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tarfile.py", line 2324, in next
raise ReadError(str(e))
ReadError: invalid header
आपको यह त्रुटि मिल रही है क्योंकि 'response.content' मान्य gzipped tar फ़ाइल नहीं है। – geoffspear
यह समझ में आता है: तो मैं इसे वैध gzipped tar फ़ाइल में कैसे बदलूं? – pydanny
मेरे लिए काम करता है एक वैध tar.gz स्थानीय होस्ट से सेवा की। तुम सिर्फ एक बुरा टारबॉल प्राप्त हो सकता है। – codysoyland