python—CSV的读写

Python017

python—CSV的读写,第1张

1.写入csv数据

import csv

header=['class','name','sex','height','year']

rows=[

[1,'xiaoming','male',168,23],

[1,'xiaohong','female',162,22],

[2,'xiaozhang','female',158,21],

[2,'xiaoli','male',158,21]

]

with open('csvdir.csv','w',newline='')as f:          #newline=" "是为了避免写入之后有空行

        ff=csv.writer(f)

        ff.writerow(header)

        ff.writerows(rows)

2.在写入字典序列类型数据的时候,需要传入两个参数,一个是文件对象——f,一个是字段名称——fieldnames,到时候要写入表头的时候,只需要调用writerheader方法,写入一行字典系列数据调用writerrow方法,并传入相应字典参数,写入多行调用writerows  

import csv

headers = ['class','name','sex','height','year']

rows = [

        {'class':1,'name':'xiaoming','sex':'male','height':168,'year':23},

        {'class':1,'name':'xiaohong','sex':'female','height':162,'year':22},

        {'class':2,'name':'xiaozhang','sex':'female','height':163,'year':21},

        {'class':2,'name':'xiaoli','sex':'male','height':158,'year':21},

    ]

with open('test2.csv','w',newline='')as f:

      f_csv = csv.DictWriter(f,headers)

      f_csv.writeheader()

      f_csv.writerows(rows)

注意:列表和字典形式的数据写入是不一样的!!!!!!

3.csv的读取,和读取文件差不多:

import csv 

with open('test.csv')as f:

    f_csv = csv.reader(f)

    for row in f_csv:

        print(row)

有许多方法可以在Python中读写CSV文件。有几种不同的方法,例如,您可以使用Python的内置open()函数来读取CSV(逗号分隔值)文件,或者可以使用Python的专用csv模块来读取和写入CSV文件。根据您的用例,您还可以使用Python的Pandas库读取和写入CSV文件。

在本文中,您将看到如何使用Python的Pandas库读取和写入CSV文件。但是,在此之前,让我们简要地看看什么是CSV文件。

什么是CSV文件?

CSV文件只不过是一个简单的文本文件。但是,这是存储表格数据的最常见,最简单和最简单的方法。这种特定格式通过遵循分为行和列的特定结构来排列表。这些行和列包含您的数据。每行都以新行终止,以开始下一行。同样,逗号(也称为定界符)分隔每行中的列。

1、报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

写入csv时,设置为gbk格式,无需再转utf-8格式

import sys

reload(sys)

sys.setdefaultencoding('gbk')

登录后复制

2、把python里面的中文字符串decode成utf-8,再encode为gbk编码

data.decode('utf-8').encode('gbk')

如果是读取csv文件的话,就反过来:

data.decode('gbk').encode('utf-8')

3、Pycharm控制台中文输出乱码问题解决方案

设置完编码后,控制台扔乱码,也可能是设置字体导致的。

试了多次之后,解决不了,重装Pycharm,然后就好了