सीएसवी फ़ाइल के साथ जो भी पूछ रहे हैं, उसे करने का शायद कोई सीधा तरीका नहीं है (जब तक कि मैंने आपको गलत समझा नहीं है)। समस्या यह है कि कोई अर्थपूर्ण अर्थ नहीं है जिसमें किसी भी फ़ाइल में "कॉलम" होते हैं जब तक कि फ़ाइल विशेष रूप से निश्चित चौड़ाई वाली पंक्तियों के लिए डिज़ाइन नहीं की जाती है। सीएसवी फाइलें आम तौर पर इस तरह से डिजाइन नहीं की जाती हैं। डिस्क पर, वे एक विशाल स्ट्रिंग से ज्यादा कुछ नहीं कर रहे हैं:
>>> import csv
>>> with open('foo.csv', 'wb') as f:
... writer = csv.writer(f)
... for i in range(0, 100, 10):
... writer.writerow(range(i, i + 10))
...
>>> with open('foo.csv', 'r') as f:
... f.read()
...
'0,1,2,3,4,5,6,7,8,9\r\n10,11,12,13,14,15,16,17,18,19\r\n20..(output truncated)..
आप देख सकते हैं, एक स्तंभ फ़ील्ड जाहिर नहीं मिलाया गया है, दूसरा कॉलम इंडेक्स 2 पर शुरू होता है, लेकिन फिर अगली पंक्ति में, कॉलम की चौड़ाई एक से बढ़ जाती है, संरेखण को फेंक देती है। इनपुट की लंबाई अलग होने पर यह भी बदतर है। उपरोक्त यह है कि सीएसवी पाठक को उस डेटा को फेंकने के लिए पूरी फ़ाइल को पढ़ना होगा, जिसका आप उपयोग नहीं करते हैं। (यदि आपको यह बुरा नहीं लगता है, तो यह जवाब है - उस डेटा को फेंकने के लिए, जो आप उपयोग नहीं करेंगे, उसे फेंक दें।)
यदि आपको कुछ जगह बर्बाद करने की कोई बात नहीं है और उसे पता है आपका कोई भी डेटा कुछ निश्चित चौड़ाई से अधिक नहीं होगा, आप निश्चित-चौड़ाई वाले फ़ील्ड वाली फ़ाइल बना सकते हैं, और फिर आप ऑफ़सेट का उपयोग कर इसे खोज सकते हैं। लेकिन फिर, एक बार ऐसा करने के बाद, आप एक असली डेटाबेस का उपयोग शुरू कर सकते हैं। PyTables numpy arrays को संग्रहीत करने के लिए कई लोगों की पसंदीदा पसंद प्रतीत होता है।
यह भी देखें: http://stackoverflow.com/questions/1053928/python-numpy-very-large-matrices –