python读取csv数据集(python读取csv写入数据库)

http://www.itjxue.com  2023-03-30 11:27  来源:未知  点击次数: 

1 如何用Python导入Excel以及csv数据集

Excel是一个二进制文件,它保存有关工作簿中所有工作表的信息

CSV代表Comma Separated Values 。这是一个纯文本格式,用逗号分隔一系列值

Excel不仅可以存储数据,还可以对数据进行操作

CSV文件只是一个文本文件,它存储数据,但不包含格式,公式,宏等。它也被称为平面文件

Excel是一个电子表格,将文件保存为自己的专有格式,即xls或xlsx

CSV是将表格信息保存为扩展名为.csv的分隔文本文件的格式

保存在excel中的文件不能被文本编辑器打开或编辑

CSV文件可以通过文本编辑器(如记事本)打开或编辑

excel中会有若干个表单,每个表单都会这些属性:?

行数(nrows) 列数(ncols) 名称(name) 索引(number)?

import xlrd //执行操作前需要导入xlrd库?

#读取文件?

excel = xlrd.open_workexcel("文件地址") //这里表格名称为excel,文件的地址可以从文件的属性中看到?

#读取表格表单数量?

sheet_num= excel.nsheets // sheet_num为变量,其值为表格表单数量?

#读取表格表单名称?

sheet_name = excel.sheet_names() // sheet_name为变量,其值为表格表单名称?

#如果想要看到上述两个变量,可以使用print()函数将它们打印出来?

#想要读取某个表单的数据,首先获取表单 excel.sheet_by_index(0)?

//表单索引从0开始,获取第一个表单对象 excel.sheet_by_name('xxx')?

// 获取名为”xxx”的表单对象 excel.sheets()?

// 获取所有的表单对象 获取单元格的内容:使用cell_value 方法 这里有两个参数:行号和列号,用来读取指定的单元格内容。?

第一行的内容是:sheet.row_values(rowx=0)?

第一列的内容是:sheet.col_values(colx=0)

CSV是英文Comma Separate Values(逗号分隔值)的缩写,文档的内容是由 “,” 分隔的一列列的数据构成的。在python数据处理中也经常用到。

import csv //执行操作前需要导入csv库?

#csv读取?

遍历其中数据 csv_file = csv.reader(open(‘文件地址’,’r’)) for x in csv_file print(x)

python—CSV的读写

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模块(读写文件)

CSV文件又称为逗号分隔值文件,是一种通用的、相对简单的文件格式,用以存储表格数据,包括数字或者字符。CSV是电子表格和数据库中最常见的输入、输出文件格式。

通过爬虫将数据抓取的下来,然后把数据保存在文件,或者数据库中,这个过程称为数据的持久化存储。本节介绍Python内置模块CSV的读写操作。

1)csv.writer()

csv模块中的writer类可用于读写序列化的数据,其语法格式如下:

参数说明:

csvfile:必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象。

dialect:编码风格,默认为excel的风格,也就是使用逗号,分隔。

fmtparam:格式化参数,用来覆盖之前dialect对象指定的编码风格。

如果想同时写入多行数据,需要使用writerrows()方法,代码如下所示:

aggs.csv文件内容:

2)csv.DictWriter()

当然也可使用DictWriter类以字典的形式读写数据,使用示例如下:

name.csv文件内容,如下所示:

1)csv,reader()

csv模块中的reader类和DictReader类用于读取文件中的数据,其中reader()语法格式如下:

2)csv.DictReader()

应用示例如下:

输出结果:

开课吧广场-人才学习交流平台

说说如何利用 Python 处理 CSV 文件

CSV 表示 “Comma-Separated Values (逗号分隔的值) ” , CSV 文件是简化的电子表格,实际为纯文本文件。

一个 CSV 文件,格式是这样的:

因为 CSV 文件中的每个单元格都是以逗号分割,所以也许有人会对每行文本调用 split() 方法,来解析 CSV 文件。但 CSV 文件也有自己的转义字符,通过转义字符,允许逗号和其他字符作为值的一部分,但单纯使用 split() 方法不能处理这些转义字符。因为这些潜在的缺陷,所以建议总是使用 csv 模块来读写 CSV 文件。

csv 模块是 Python 自带的,所以可以直接导入。

要使用 csv 模块从 CSV 文件中读取数据,我们需要创建一个 Reader 对象。 通过 Reader 对象,我们可以迭代遍历 CSV 文件中的每一行内容。

运行结果:

要用 csv 模块读取 CSV 文件,首先先使用 open() 函数打开它 ,就像打开任何其他文本文件一样。然后将它传递给 csv .reader() 函数。 这个函数将返回一个 Reader 对象。注意,csv .reader() 函数不接受文件名作为入参。

要访问 Reader 对象中的值,最直接的方法,就是利用 list() 将它转换成一个普通 Python 列表。它实际为一个包含列表的列表,用于表示二维数据。

我们还可以使用表达式 data [ row ][ col ] 来访问 CSV 中特定行和列的值。其中, row 是 data 中一个列表的下标, col 是该列表中,我们想访问的项的下标:

运行结果:

运行结果:

Writer 对象可以让我们把数据写入 CSV 文件。

运行结果:

在 Windows 上,需要为 open() 函数的 newline 关键字参数传入一个空字符串。如果没有设置 newline 参数, output.csv 中的行距将变为两倍,如下图所示。

如果写入的内容包含逗号,那么 csv 模块会自动加上双引号,对其进行转义,如下例所示。

运行结果:

我们也可以利用 delimiter ,来制作 TSV 文件,TSV 是Tab-separated values的缩写,即以制表符作为分隔符的文件;利用 lineterminator 参数来设定行距。

运行结果:

这里利用 lineterminator='\n\n\n' 将行与行之间的字符变为三个换行符,效果就是实现了 3 倍行距。

怎么用python读取csv数据

csv是我接触的比较早的一种文件,比较好的是这种文件既能够以电子表格的形式查看又能够以文本的形式查看。最早接触是在别人的Perl脚本中,或许是为了充分利用Perl的文本处理能力。不过,日常的生活工作中我用到的比较多的倒还是电子表格。

创建一个电子表格如下:

使用Mac中Numbers功能将其导出为csv文件,使用文本查看文件内容如下:

GreydeMac-mini:chapter06 greyzhang$ cat data.csv

index,name,comment,,,,

1,name_01,coment_01,,,,

2,name_02,coment_02,,,,

3,name_03,coment_03,,,,

4,name_04,coment_04,,,,

5,name_05,coment_05,,,,

6,name_06,coment_06,,,,

7,name_07,coment_07,,,,

8,name_08,coment_08,,,,

9,name_09,coment_09,,,,

10,name_10,coment_10,,,,

11,name_11,coment_11,,,,

12,name_12,coment_12,,,,

13,name_13,coment_13,,,,

14,name_14,coment_14,,,,

15,name_15,coment_15,,,,

16,name_16,coment_16,,,,

17,name_17,coment_17,,,,

18,name_18,coment_18,,,,

19,name_19,coment_19,,,,

20,name_20,coment_20,,,,

21,name_21,coment_21,,,,

换用pandas尝试数据文件读取如下:

In [1]:?import?pandas?as?pd

In [2]:?ls

data.csv? ? ? data.numbers

In [3]:?data = pd.read_csv('data.csv')

In [4]:?data

Out[4]:

index ? ? name? ? comment? Unnamed: 3? Unnamed: 4? Unnamed: 5? Unnamed: 6

0 ? ? ? 1? name_01? coment_01 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

1 ? ? ? 2? name_02? coment_02 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

2 ? ? ? 3? name_03? coment_03 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

3 ? ? ? 4? name_04? coment_04 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

4 ? ? ? 5? name_05? coment_05 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

5 ? ? ? 6? name_06? coment_06 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

6 ? ? ? 7? name_07? coment_07 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

7 ? ? ? 8? name_08? coment_08 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

8 ? ? ? 9? name_09? coment_09 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

9? ? ? 10? name_10? coment_10 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

10 ? ? 11? name_11? coment_11 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

11 ? ? 12? name_12? coment_12 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

12 ? ? 13? name_13? coment_13 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

13 ? ? 14? name_14? coment_14 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

14 ? ? 15? name_15? coment_15 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

15 ? ? 16? name_16? coment_16 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

16 ? ? 17? name_17? coment_17 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

17 ? ? 18? name_18? coment_18 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

18 ? ? 19? name_19? coment_19 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

19 ? ? 20? name_20? coment_20 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

20 ? ? 21? name_21? coment_21 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

查看读取出来的结果,看的出结果被处理成了pandas的DataFrame格式。

In [6]: type(data)

Out[6]:?pandas.core.frame.DataFrame

python中怎么读取csv文件

Python读取CSV文件方法如下:

如下是一个CVS文件

使用Python打开CSV可以直接使用open函数打开,然后使用reader函数读取内容,实现代码如下:

运行结果如下:

更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python中怎么读取csv文件的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

(责任编辑:IT教学网)

更多

推荐安全技术文章