(3)python基础--用python来读写文件(三)(csv文件的读写)

之前写的一篇2000字不小心被我弄丢了,含着泪再写一遍吧。CSV文件平常接触的不多,但它是非常有用的一种文件格式,经常用来作为不同程序之间的数据交互格式。它特定的格式,带给了它无限的魅力。读了下面这篇文章,你就会发现它的迷人之处。

一、什么是CSV文件?

CSV是Comma Separate Values的缩写,翻译过来就是逗号分隔值。顾名思义,那我们就知道它里面是储存的一些值,并且他们是用逗号隔开的。但事实上,有时候不一定是逗号,可以是其他字符。

看一下百科给出的定义:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。

上面这段文字气氛过于紧张,专业性比较强,那我们就简单粗暴的理解一下吧。其实换言之,CSV文件和txt文件比较相似,里面都是一些文本还有分隔字符,txt文件里面也有逗号的。但是,不同之处是,CSV文件中的逗号是有特殊含义的。并且这个csv文件可以用记事本打开、编辑,也可以使用excel打开、编辑。当然,两种方式打开看到的肯定不一样,要不然费这么大功夫干嘛。下面举个例子来看一下:

我们新建一个CSV文件叫做new,也就是new.csv,用记事本打开,在里面输入几个字符,几个逗号,保存、关闭。
在这里插入图片描述
关闭之后我们再使用excel打开。
在这里插入图片描述
我们发现这几个字符整整齐齐的放在表格里面了,并且以逗号为分隔符,放在了不同的单元格里面。工作簿和工作表都是以‘new’来命名的。
我们再在excel中把这个csv文件编辑一下,用记事本打开,看看发生什么变化。
我把这几个字符放在两个单元格中。
在这里插入图片描述
然后保存、关闭,用记事本打开,发现变成了两个小段,用逗号隔开。
在这里插入图片描述
那么到现在我们应该已经比较了解这个CSV文件了,下面我们使用python来对它进行读写操作。

二、CSV文件的写入操作

1、使用CSV内置库进行写入

不同于txt文件,这里在操作之前需要引入一个python的内置标准库,叫做csv。这个库是python自带的,不需要自己去下载了。

写入操作和txt文件的操作略有不同,下面附上代码:

import csv
with open('c:/python/new.csv','w')as file:
    dtwt=csv.writer(file)
    dtwt.writerow(['世','间','美','好','与','你','环环','相','扣'])
    dtwt.writerow(['l','i','s','a','最','美'])

打开文件看一下结果。
在这里插入图片描述
发现中间空了一行,这是因为它默认以换行符‘\n’结尾。相信你和我一样不喜欢空行,我们可以更改为以空字符结尾就好了。代码更改为这样:

import csv
with open('c:/python/new.csv','w',newline='')as file:
    dtwt=csv.writer(file)
    dtwt.writerow(['世','间','美','好','与','你','环环','相','扣'])
    dtwt.writerow(['l','i','s','a','最','美'])

然后就发现没有空行了。

2、用pandas库进行写入操作

pandas库是一个第三方库,以大熊猫命名,大熊猫身上就两种颜色,非黑即白,可想而知它使用起来简洁明了。它的好处就是代码简单,输出也非常直观漂亮。但是它不是内置库,需要我们自己去安装,安装也很简单,pip install pandas就可以了。当然,安装了anaconda以后,这些都是自带的。

下面附上用pandas来写入文件的代码:

import pandas as pd
with open('c:/python/new.csv','w')as file:
    name=['lisa','xiao','green','jerry']
    age=[18,22,18,40]
    data=pd.DataFrame({'name':name,'age':age})
    data.to_csv(file)

看一下写入的结果,非常整齐,直观。
在这里插入图片描述

三、CSV文件的读取操作

1、用CSV内置库来读取

和上面的写入操作对照起来,略有不同。下面先附上代码:

import csv
with open('c:/python/new.csv','r',newline='')as file:
    dtrd=csv.reader(file)
    print(next(dtrd))
    print(next(dtrd))
    print(next(dtrd))
    print(next(dtrd))
    print(next(dtrd))
    print(next(dtrd))
    #for i in dtrd:
    	#print(i)

运行结果是这样子的:
在这里插入图片描述
注意这里的dtrd是一个迭代器,需要用next()来逐行读取。

2、用pandas来读取

上面可以发现,使用csv来读取还是比较麻烦的。下面直接附上代码:

import pandas as pd
with open('c:/python/new.csv','r',newline='')as file:
    print(pd.read_csv(file))

代码是不是一下子少了很多,并且读取出来也是表格的形式。
在这里插入图片描述

发布了8 篇原创文章 · 获赞 21 · 访问量 4332

猜你喜欢

转载自blog.csdn.net/wander_ing/article/details/105425074