Python CSV needs to be re-read in before each "dict" operation -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

मैं csv का उपयोग कर रहा हूँ DictReader को एक सीएसवी फ़ाइल में पढ़ना और इसके साथ डिक्ट ऑपरेशन करना। अजीब बात ये है कि प्रत्येक ऑपरेशन से पहले मुझे सीएसवी फ़ाइल पढ़नी होगी। क्यों ऐसा मामला है?

  आयात सीएसवी रीडिन = ओपन ("न्यूनतम सीसीवी", "आर") dict = csv.DictReader (रीडिन, डेलीमीटर = ",", कोटेशन = "\ "" '' 'एक', 'शीर्षक 2': 'दो', 'दो', '' 'शीर्षक 3': 'तीन'} {'शीर्षक 1': 'चार', 'शीर्षक 2': 'पांच', 'शीर्षक 3': 'छः'}  

अगर मैं प्रिंट ऑपरेशन करता हूं दूसरी बार:

  शब्दकोशों में पंक्तियों के लिए: प्रिंट पंक्तियों  

यह कुछ भी नहीं लौटाता है, यहां तक ​​कि कोई त्रुटि भी नहीं। मुझे एक और दो चरणों का पालन करने की ज़रूरत है ( "ओपन" और "सीएसवी। डेकट रीडर") फिर से प्रिंट आउट आउट प्राप्त करने के लिए। यह क्यों है?

इसे दूसरी बार काम नहीं करने का कारण यह है कि फ़ाइल सूचक फ़ाइल के अंत में पहले से है, इसलिए पढ़ने के लिए कुछ नहीं है; आपका पाठक ऑब्जेक्ट फ़ाइल के अंत में पहले ही पहुंच चुका है।

वैसे, dict को एक चर नाम के रूप में प्रयोग न करें, यह अंतर्निहित dict () फ़ंक्शन को छाया करता है। < / P>

आप एक सूची में सभी पंक्तियों को स्टोर कर सकते हैं, ताकि आपको फ़ाइल को फिर से पढ़ना पड़े:

  खुले ('minimal.csv', 'r ') के रूप में रीडिंग: पंक्तियों में पंक्ति के लिए रीडर = सीएसवी। डिक्टराइडर (रीडिन, डेलीमीटर =', ', कोटेशन = "\" ") पंक्तियां = सूची (रीडर): प्रिंट (पंक्ति)  
< / div>

Comments

Popular posts from this blog

mysql - How to enter php data into a html multiple select box -

java - Can't add JTree to JPanel of a JInternalFrame -

c++ - Cassandra datastax cpp driver - avoiding unnecessary copies -