पायथन में सीएसवी डेटा की एक एकल पंक्ति को कैसे पढ़ें?


94

अजगर का उपयोग कर सीएसवी डेटा पढ़ने के कई उदाहरण हैं, जैसे यह:

import csv
with open('some.csv', newline='') as f:
  reader = csv.reader(f)
  for row in reader:
    print(row)

मैं केवल डेटा की एक पंक्ति को पढ़ना चाहता हूं और इसे विभिन्न चर में दर्ज करना चाहता हूं। मैं उसको कैसे करू? मैंने काम के उदाहरण के लिए हर जगह देखा है।

मेरा कोड केवल i के लिए मान निकालता है, और कोई भी अन्य मान नहीं है

reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
  i = int(row[0])
  a1 = int(row[1])
  b1 = int(row[2])
  c1 = int(row[2])
  x1 = int(row[2])
  y1 = int(row[2])
  z1 = int(row[2])

आपके सीएसवी की संरचना क्या है? क्या है rowजब आप पाठक के माध्यम से पुनरावृत्ति कर रहे हैं?
dm03514

जवाबों:


145

next()रीडर ऑब्जेक्ट पर सीएसवी फ़ाइल उपयोग की केवल पहली पंक्ति को पढ़ने के लिए ।

with open('some.csv', newline='') as f:
  reader = csv.reader(f)
  row1 = next(reader)  # gets the first line
  # now do something here 
  # if first row is the header, then you can do one more next() to get the next row:
  # row2 = next(f)

या:

with open('some.csv', newline='') as f:
  reader = csv.reader(f)
  for row in reader:
    # do something here with `row`
    break

38

आप सिर्फ पहली पंक्ति प्राप्त कर सकते हैं जैसे:

with open('some.csv', newline='') as f:
  csv_reader = csv.reader(f)
  csv_headings = next(csv_reader)
  first_line = next(csv_reader)

2
संभवतः, "ओपन '(' csv_file ',' r ')" को f: csv_reader = csv.reader (f) ... "
संचित

23

विशाल डेटासेट से पहली कुछ पंक्तियाँ पढ़ने के लिए आप पंडास लाइब्रेरी का उपयोग कर सकते हैं।

import pandas as pd

data = pd.read_csv("names.csv", nrows=1)

आप nrows पैरामीटर में पढ़ी जाने वाली लाइनों की संख्या का उल्लेख कर सकते हैं।


14

से अजगर प्रलेखन :

और जबकि मॉड्यूल सीधे पार्सिंग स्ट्रिंग्स का समर्थन नहीं करता है, यह आसानी से किया जा सकता है:

import csv
for row in csv.reader(['one,two,three']):
    print row

बस अपने स्ट्रिंग डेटा को एक सिंगलटन सूची में छोड़ दें।


8

सीएसवी फ़ाइल में किसी भी पंक्ति को प्राप्त करने का सरल तरीका

import csv
csvfile = open('some.csv','rb')
csvFileArray = []
for row in csv.reader(csvfile, delimiter = '.'):
    csvFileArray.append(row)
print(csvFileArray[0])

3
Python3 में इस काम को करने के लिए, बस 'r' में 'b' को हटा दें
रिकी Avina

1
यह सिर्फ काम करता है, वास्तव में बिना delimiter='.'
suvtfopw

1
पोस्टरों के प्रश्न का उत्तर देने के लिए, बस के breakबाद जोड़ें csvFileArray.append(row)और यह केवल पहली पंक्ति को पढ़ेगा।
स्ट्रैटसबैस एलएलसी

5

केवल संदर्भ के लिए, forलूप का उपयोग शेष फ़ाइल प्राप्त करने के लिए पहली पंक्ति प्राप्त करने के बाद किया जा सकता है:

with open('file.csv', newline='') as f:
    reader = csv.reader(f)
    row1 = next(reader)  # gets the first line
    for row in reader:
        print(row)       # prints rows 2 and onward

3

लाइन की एक श्रृंखला को प्रिंट करने के लिए, इस मामले में लाइन 4 से 7 तक

import csv

with open('california_housing_test.csv') as csv_file:
    data = csv.reader(csv_file)
    for row in list(data)[4:7]:
        print(row)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.