如何在Python中读取一行csv数据?

and*_*ton 68 python csv iterator file next

有很多使用python读取csv数据的例子,如下所示:

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

我只想读取一行数据并将其输入各种变量.我怎么做?我到处寻找一个有效的例子.

我的代码只检索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])
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 121

要只next()读取读取器对象上的csv文件的第一行.

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)
Run Code Online (Sandbox Code Playgroud)

要么 :

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

  • @MahsanNourani 文件指针可以移动到文件中的任何位置,例如“file.seek(0)”会将其移回开头,然后您可以从开头重新读取。显然,您必须保持文件打开才能执行查找操作。一般来说,使用迭代器的目的是一次获得一项,因此节省内存,如果需要对同一数据进行多次迭代,列表是更好的数据结构。 (3认同)
  • 如果您只想读取第一行而不是迭代,会发生什么?这种方法将迭代器移动到下一行,如果您想稍后再次迭代整个列表,您将丢失该值。 (2认同)

dm0*_*514 26

你可以得到第一行,如:

with open('some.csv', newline='') as f:
  csv_reader = csv.reader(f)
  csv_headings = next(csv_reader)
  first_line = next(csv_reader)
Run Code Online (Sandbox Code Playgroud)

  • 可能,最好将“with open('csv_file', 'r')”添加为 f: csv_reader = csv.reader(f) ...” (2认同)

Ara*_*mar 17

您可以使用Pandas库从巨大的数据集中读取前几行.

import pandas as pd

data = pd.read_csv("names.csv", nrows=1)
Run Code Online (Sandbox Code Playgroud)

您可以在nrows参数中提及要读取的行数.


Rob*_*ell 10

Python文档:

虽然模块不直接支持解析字符串,但可以轻松完成:

import csv
for row in csv.reader(['one,two,three']):
    print row
Run Code Online (Sandbox Code Playgroud)

只需将字符串数据放入单例列表即可.


小智 9

仅供参考,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
Run Code Online (Sandbox Code Playgroud)


小智 7

获取csv文件中任何行的简单方法

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

  • 要在python3中使这个工作,只需删除'rb'中的'b' (3认同)

Bip*_*Das 6

打印一系列行,在本例中为第 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)
Run Code Online (Sandbox Code Playgroud)