मैं पूरी फ़ाइल को मेमोरी में पूरा करने की कोशिश कर रहा हूं (किया गया - स्ट्रिंगियो का उपयोग करके) - लेकिन ये ऑब्जेक्ट वास्तव में वास्तव में 'वास्तविक' फ़ाइलों की तरह व्यवहार नहीं करते हैं, जहां तक मैं देख सकता हूं - मुझे पूरी सामग्री मिलती है, या मैं कर सकता हूं एक समय में एक लाइन पढ़ते हैं, लेकिन मैं बाहर काम नहीं कर सकते कि इस पद्धति लागू करने के लिए:स्मृति फ़ाइल पढ़ने के लिए सीएसवी रीडर कैसे प्राप्त करें?
import csv
with open(#MYMEMORYFILE_HERE#, 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
वहाँ सिर्फ एक डिस्क पर फ़ाइल की तरह एक memoryfile के इलाज का एक रास्ता है, तो मैं अच्छे मुहावरे का उपयोग कर सकते ऊपर ?
Python 2.7.4 (default, Apr 19 2013, 18:28:01)
संपादित करें: इस पर जवाब के लिए धन्यवाद - मुझे लगता है कि मैं को संकुचित होता है कि मुझे क्या भ्रामक था ... लेकिन मैं अभी भी एक मुद्दा यहाँ है, निम्नलिखित नहीं करता उत्पादन कुछ भी? मुझे फ्लशिंग पर संदेह है?
from csv import reader, writer
import StringIO
memfile=StringIO.StringIO()
spamwriter = writer(memfile)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
spamreader=reader(memfile)
for row in spamreader:
print ', '.join(row)
memfile.close()
संपादित करें # 2: लेकिन मैं गलत पेड़ मुझे लगता है कि ऊपर भौंकने कर रहा हूँ: मैं इस की डिस्क पर संस्करण काम करने के लिए या तो नहीं मिल सका ('IOError: फ़ाइल को पढ़ने के लिए खोल नहीं' - जब मैं पहले से ही खुली फ़ाइल पर पढ़ता हूं ...) संपादित करें # 3: स्ट्रिंगियो को छोड़ दिया गया है (इसके लिए कोई वास्तविक आवश्यकता नहीं है) - उत्तर के अनुसार स्प्लिटललाइन का उपयोग किया जाता है।
मैं यहां कोड और टिप्पणियां छोड़ दूंगा - अगर यह उपयोगी हो। (भले ही यह एक cul-de-sac है)।
सालों बाद, मुझे लगता है कि आपने अपना प्रश्न अपडेट किया है; आपका अपडेट विफल हो जाता है क्योंकि आप * 0 * पर वापस आना भूल गए हैं। –