使用python读取csv文件

用python读取文件的操作是很常见的,所以在这里记录一下相关的操作步骤:
有参考这篇博客:https://www.cnblogs.com/unnameable/p/7366437.html

文件的读取

1.首先你得有一个csv文件,可以把excel文件另存为csv文件也可以~
我这里命名为delivery.csv 里面的数字格式如下:
图1

2.接下来就是利用csv模块的相关函数进行打开文件 读取里面的数据,存成一个二维的矩阵,都是一些基本操作,代码如下:

import csv 

csv_file=csv.reader(open('delivery.csv','r'))
print(csv_file) #可以先输出看一下该文件是什么样的类型

输出结果如下:

<_csv.reader object at 0x000000000CE4B250>

输出的只是一个文件对象,并不是我们需要打印的数字类型的~,所以我们需要遍历这个文件,可以输出该文件每一行的信息,也可以直接输出全部信息:

import csv 

csv_file=csv.reader(open('delivery.csv','r'))
print(csv_file) #可以先输出看一下该文件是什么样的类型

content=[] #用来存储整个文件的数据,存成一个列表,列表的每一个元素又是一个列表,表示的是文件的某一行

for line in csv_file:
    print(line) #打印文件每一行的信息
    content.append(line)
print("该文件中保存的数据为:\n",content)

输出的结果为:
图2

文件的写入:

把自己要写入的数据存入csv文件中,操作如下:
首先要定义要写入的文件变量 csv_file ,接下来我们需要对要写入的文件打开(使用追加的方式‘a’)然后open函数还需要参数newline=’ ’ 如果不用newline=‘ ’就写不进去,,具体原因不清楚,,
然后csv.writer的另一个参数,dialect,也就是指定我们写入文件的方式,这里指定为‘excel’方式

import csv
csv_file=csv.writer(open('delivery4.csv','a',newline=''),dialect='excel')
print(csv_file)

我们可以先打印csv_file 看一下该变量是什么类型的:
图3

接下来我们就可以对新建的文件delivery4.csv文件进行写入操作啦:

import csv
csv_file=csv.writer(open('delivery4.csv','a',newline=''),dialect='excel')
print(csv_file)

item1=['璇璇',22,'可爱小仙女优秀']
item2=['僩僩',26,'么么哒~']

csv_file.writerow(item1)
csv_file.writerow(item2)

运行结果如下:(之所以会重复,是因为我运行了两次)
图4

写入文件之后,除了在刚才写入的文件delivery4.csv中查看写入的内容以外,我们还可以在python中直接读取刚才写入的内容,也就是上面的文件读取:
图5

发现重复运行的话就是会重复写入~

上面对于文件的读取操作是很简单,可是发现数据都被读成字符串形式,有时候我们可能并不希望结果是这样的,因为我们可能需要这些数值型的数据进行矩阵运算等,所以这种字符串的形式就不适用啦,接下来我介绍另一种很简便的针对数值型数据的读取(读取的结果仍然是数值型的数据)

# -*- coding: utf-8 -*-
"""
Created on Sat Jun 23 13:14:40 2018

@author: Administrator
"""

import csv
from numpy import genfromtxt
import numpy as np
csv_file=csv.writer(open('delivery5.csv','a',newline=''),dialect='excel')
print(csv_file)
item1=[1,2,3,4]
item2=[2,3,4,5]
item3=[3,4,5,6]
csv_file.writerow(item1)
csv_file.writerow(item2)
csv_file.writerow(item3)

dataPath=r'F:\workspace_python\py_mechinelearning\20180623\delivery5.csv'
data=genfromtxt(dataPath,delimiter=',')
print(data)

最终写入到delivery5.csv文件中的数据为:
图6

然后在程序中运行的结果为:
图7

我觉得这种文件读取的方式以后应该会经常用到~~~

猜你喜欢

转载自blog.csdn.net/jiaowosiye/article/details/80782729