如何在Python中读取CSV文件?

时间:2016-05-15 16:04:17

标签: python csv

我在Windows 8上使用Spyder for Python 2.7。我试图打开并读取csv文件并查看存储在其中的所有数据,但这就是我所得到的:

runfile('C:/Users/John/Documents/Python Scripts/FLInsuraneFile.py', wdir='C:/Users/John/Documents/Python Scripts')
<_io.TextIOWrapper name='FL_insurance_sample.csv' mode='r' encoding='cp1252'>

如何正确打开文件?

4 个答案:

答案 0 :(得分:0)

您可以使用内置库

import csv
with open('names.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['first_name'], row['last_name'])

https://docs.python.org/3.5/library/csv.html

答案 1 :(得分:0)

您可以使用pandas库:

import pandas as pd
csvfile = pd.read_csv('path_to_file')
print(csvfile)

如果要向文件添加自定义标头,请使用names参数,否则只会将文件的第一行作为标题。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

答案 2 :(得分:0)

首先,您必须了解CSV文件的内部工作原理。 CSV文件由行和列组成,如下所示:

| NAME  |  AGE |  ROOM |
| ---------------------|
| Kaleb |  15  |   256 |
| ---------------------|
| John  |  15  |   257 |
| ---------------------|
| Anna  |  16  |   269 |

垂直元素是列,水平元素是行。行包含许多类型的数据,例如名称/年龄/房间。列只包含一种类型的数据,如名称。

继续,这是一个读取CSV的示例函数。 请仔细研究代码。

def read_csv(csv_file):
    data = []
    with open(csv_file, 'r') as f:

        # create a list of rows in the CSV file
        rows = f.readlines()

        # strip white-space and newlines
        rows = list(map(lambda x:x.strip(), rows))

        for row in rows:

            # further split each row into columns assuming delimiter is comma 
            row = row.split(',')

            # append to data-frame our new row-object with columns
            data.append(row)

    return data

现在我为什么这样做?嗯,此功能允许您按行/列访问CSV文件。意思是索引更容易。使用上面的函数查看此示例:

csvFile = 'test.csv'

# invoke our function 
data = read_csv(csvFile)

# get row 1, column 2 of file
print(data[1][2])

# get entirety of row 2
print(data[2])

# get row 0, columns 1 & 2
print(data[0][1], data[0][2])

如您所见,我们可以使用read_csv()函数轻松访问文件的不同部分并创建嵌套列表对象。最后,如果要打印到整个文件,只需在创建数据对象后使用for循环。

data = read_csv(csvFile)

for row in data:
    print(row)

总之,熊猫非常适合大数据科学,但如果你只是 想要读取/访问CSV,这个功能就好了。除非你想要:),否则无需为小任务安装大包。

祝你好运!

答案 3 :(得分:0)

您可以使用 Table Base。

import tablebase

My_Table = tablebase.CsvTable("path/to/your.csv")
print(My_Table.table_content)

有关 Table Base 的完整文档,请参阅 python.centillionware.com/tablebase