2010-03-05 13 views

उत्तर

14

उपयोग csv.DictReader साथ csv फ़ाइल है परिवर्तित करने के लिए:

एक ऑब्जेक्ट बनाएं जो नियमित पाठक की तरह काम करता है लेकिन मा पीएस जानकारी एक ऐसे स्कूल में पढ़ी जाती है जिसका कुंजी वैकल्पिक फ़ील्ड नाम पैरामीटर द्वारा दिया जाता है। फ़ील्ड नाम पैरामीटर sequence है जिसका तत्व इनपुट डेटा के फ़ील्ड से क्रमबद्ध हैं। ये तत्व परिणामस्वरूप शब्दकोश की कुंजी बन जाते हैं। यदि फ़ील्ड नाम पैरामीटर छोड़ा गया है, तो csvfile की पहली पंक्ति में मान फ़ील्ड नाम के रूप में उपयोग किए जाएंगे। यदि पंक्ति पढ़ने में फ़ील्डनाम अनुक्रम की तुलना में अधिक फ़ील्ड हैं, तो शेष डेटा को restkey के मान द्वारा अनुक्रमित अनुक्रम के रूप में जोड़ा जाता है। यदि पंक्ति पढ़ने में फ़ील्डनाम अनुक्रम की तुलना में कम फ़ील्ड हैं, तो शेष कुंजी वैकल्पिक पुनर्विक्रय पैरामीटर का मान लेती हैं। किसी भी अन्य वैकल्पिक या कीवर्ड तर्क अंतर्निहित reader उदाहरण के लिए पारित कर रहे हैं ...

+0

मैं मैंने पहले कभी नहीं देखा है ... –

26
import csv 

reader = csv.DictReader(open('myfile.csv')) 
for row in reader: 
    # profit ! 
0

'सीएसवी' यहाँ अन्य उत्तर में उल्लिखित उपयोग करने के साथ अच्छी बात यह है कि यह एक फ़ाइल को पढ़ने के लिए इस्तेमाल किया जा सकता है (है स्पष्ट उपयोग केस) लेकिन एक नियमित सीएसवी स्वरूपित स्ट्रिंग भी पार्स। एक csv फ़ाइल को पढ़ने के लिए

उदाहरण:

import csv 
with open('my_file.csv') as f: 
    for line in csv.DictReader(f, fieldnames=('val1', 'val2', 'val3')): 
     print(line) 

सूचना है कि आप स्पष्ट रूप से हेडर जो आप कुंजी हो चाहते पारित कर सकते हैं, यह बहुत आसान हेडर के बिना csv फ़ाइलें उपयोग करने के लिए बना रही है।

एक और उपयोग के मामले 'सीएसवी' के साथ सिर्फ एक नियमित रूप से स्ट्रिंग पढ़ रही है

उदाहरण:

import csv 
my_csv_string = 'val1, val2, val3' 
my_csv_dict = next(csv.DictReader(StringIO(s), fieldnames=('key1', 'key2', 'key3'))) 

वैसे भी, 'csv.DictReader()' तुम क्या जरूरत है ..

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