2015-01-13 8 views
5

मुझे पायथन में एक बड़ी सीएसवी फ़ाइल की पहली पंक्ति को कैसे हटाया जाना चाहिए? मैं यहाँ में पिछले समाधान में देखा, एक था:बिग सीएसवी फ़ाइल की पहली पंक्ति को हटा रहा है?

f.next() # skip header line 
AttributeError: '_io.TextIOWrapper' object has no attribute 'next' 

अन्य समाधान था:

with open('file.txt', 'r') as fin: 
    data = fin.read().splitlines(True) 
with open('file.txt', 'w') as fout: 
    fout.writelines(data[1:]) 

कौन सा स्मृति मुद्दा लाता

with open("test.csv",'r') as f: 
    with open("updated_test.csv",'w') as f1: 
     f.next() # skip header line 
     for line in f: 
      f1.write(line) 

जो मुझे इस त्रुटि दे दी है!

+0

क्यों आप ऐसा करना चाहते हैं ? –

+0

क्योंकि मैं हेडर लाइन को हटाना चाहता हूं, बाद में इन आंकड़ों को विलय कर दिया जाएगा और उन्हें संपादित करने से और समस्या होगी। –

+1

जब आप अपनी फाइलों को मर्ज करते हैं तो ऐसा करने के लिए जब आप ऐसा कर सकते हैं तो हेडर पंक्ति को छोड़कर अपना समय बर्बाद क्यों करें? –

उत्तर

9

next(f)

+0

क्या यह बहुत बड़ी सीएसवी फाइलों के लिए इष्टतम है (सैकड़ों हजारों पंक्तियों के साथ)? – NumenorForLife

+1

@ jsc123 हाँ यह – Hackaholic

0

को f.next() बदलें) का उपयोग च .__ अगले __ (f.next()

यहाँ प्रलेखन के बजाय: https://docs.python.org/3/library/stdtypes.html#iterator.next

+0

नहीं है, ऐसा मत करो। इस विधि का उपयोग इस प्रकार किया जाता है: 'x में myIter: ... '। –

+2

डाउनवॉटेड क्योंकि डबल-अंडरस्कोर विधि के लिए सीधी कॉल यहां अवांछित है (वे किसी कारण से बदसूरत हैं)। इसके बजाय, 'अगला (एफ)' पसंद करें। –

+0

इसे इंगित करने के लिए धन्यवाद। मैं यहां भी सीखने के लिए हूं, विधि मेरे लिए काम करती है और मैंने अवांछित तरीके से मूल्यांकन नहीं किया – aberna

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