2011-01-24 12 views
18

डिक्ट्रेडर का उपयोग करते समय मैं CSV में रिकॉर्ड्स की एक पंक्ति कैसे छोड़ूं?पायथन 3.2 सीएसवी में एक लाइन छोड़ें। डिक्ट्रेडर

कोड:

import csv 
reader = csv.DictReader(open('test2.csv')) 
# Skip first line 
reader.next() 
for row in reader: 
    print(row) 

त्रुटि:

Traceback (most recent call last): 
    File "learn.py", line 3, in <module> 
    reader.next() 
AttributeError: 'DictReader' object has no attribute 'next' 
+0

कुछ भी नहीं इस समस्या से कोई लेना देना पता करने के लिए है, लेकिन आप इस तरह से अपनी फ़ाइल को खोलने की जानी चाहिए: 'खुला ('test2.csv', न्यू लाइन = '')'। .. csv.reader दस्तावेज़ –

+0

देखें मैं CSV.Reader दस्तावेज़ पढ़ता हूं। यह विशेषता multiline CSV को संरक्षित रखने में मदद करने के लिए प्रतीत होती है। चूंकि मेरी सीएसवी फ़ाइल मल्टीलाइन है, क्या यह अभी भी मेरे ओपन कमांड में 'newline =' 'जोड़ने के लिए समझदार होगा? – paragbaxi

उत्तर

20

आप next(reader) बजाय का उपयोग करें।

स्रोत: csv.DictReader documentation

+2

ऐसा इसलिए है क्योंकि यह पाइथन 3 है, पायथन 2 नहीं। –

+0

यह पायथन 2 और पायथन 3 – user1251007

6

अजगर 2.6 के बाद से आप अगले (foo) foo.next के बजाय का उपयोग करना चाहिए()।

6

यह को Python2 में एक गलती माना जाता था विधि के लिए next() बुलाया __next__()

next(obj) के बजाय अब कॉल obj.__next__() सिर्फ str की तरह, len आदि के रूप में यह होना चाहिए।

आप आमतौर पर obj.__next__() पर कॉल नहीं करेंगे, क्योंकि आप सीधे obj.__str__() पर कॉल नहीं करेंगे अगर आप किसी ऑब्जेक्ट की स्ट्रिंग प्रस्तुति चाहते हैं।

हैंडी यदि आप पाते हैं अपने आप को असामान्य iterators लेखन

+0

में काम करता है संदर्भ के लिए धन्यवाद! – tarikki

संबंधित मुद्दे