Python怎么实现从文件中加载数据(python,开发技术)

时间:2024-04-29 05:57:58 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

我们将使用内置的 csv 模块加载CSV文件

CSV文件是一种特殊的文本文件,文件中的数据以逗号作为分隔符,很适合进行数据的解析。先用excle建立如下表格和数据,另存为csv格式文件,放到代码目录下。

Python怎么实现从文件中加载数据

包含在Python标准库中自带CSV 模块,我们只需要import进来就能使用。比如我们需要将上面的CSV文件都打印出来,代码 如下:

importcsv#importcsv用来导入csv模块filename='E:\WorkSpace\python\coding\score.csv'#文件保存的绝对路径withopen(filename)asfile_csv:#是不是忘记了如何打开文件?打开文件,并将结果文件对象存储在file_csv中reader=csv.reader(file_csv)#直接调读取用csv.read()读取文件内容forrowinreader:#用for循环打印每一行print(row)

运行结果如下:

['Name', 'Grade', 'Class', 'Age', 'mathscore', 'Englishscore']
['Lucy', '7', '2', '14', '95', '86']
['bush', '8', '1', '15', '80', '75']
['lily', '7', '3', '14', '93', '95']
['Jack', '8', '2', '14', '87', '84']
['Mary', '9', '1', '15', '85', '86']
['philip', '7', '3', '14', '90', '92']
['Liming', '9', '2', '16', '99', '87']

打印文件头及其位置

读入文件,是为了获取其中的数据,需要将相关信息进行分离,先看看如何读出头即文件的第一行,next()返回文件中的下一行。

importcsv#importcsv用来导入csv模块filename='E:\WorkSpace\python\coding\score.csv'#文件保存的绝对路径withopen(filename)asfile_csv:#是不是忘记了如何打开文件?打开文件,并将结果文件对象存储在file_csv中reader=csv.reader(file_csv)#直接调读取用csv.read()读取文件内容header_row=next(reader)#模块csv包含函数next(),调用它并将阅读器对象传递给它时,它将返回文件中的下一行。#调用了next()一次,因此得到的是文件的第一行,其中包含文件头#forrowinreader:#用for循环打印每一行 # print(row)forindex,column_headerinenumerate(header_row):#对列表调用了enumerate()来获取每个元素的索引及其值print(index,column_header)

运行后的结果如下所示:

0 Name
1 Grade
2 Class
3 Age
4 mathscore
5 Englishscore

提取其中索引,即name的索引为0,Grade的索引为1,知道了索引便可以读取其中的任何数据,比如我们要打印出mathscore,索引为4,于是代码如下:

scores=[]定义一个空的listforrowinreader:scores.append(int(row[4]))#读取的文件,默认为字符串,用int()转换为数字。print(scores)

运行结果:

[95, 80, 93, 87, 85, 90, 99]

接下来,制作图表展示一下,先把mathscore和englishscore分数做个柱状对比。代码如下:

importmatplotlib.pyplotaspltimportcsv#importcsv用来导入csv模块filename='E:\WorkSpace\python\coding\score.csv'#文件保存的绝对路径withopen(filename)asfile_csv:#是不是忘记了如何打开文件?打开文件,并将结果文件对象存储在file_csv中reader=csv.reader(file_csv)#直接调读取用csv.read()读取文件内容header_row=next(reader)#模块csv包含函数next(),调用它并将阅读器对象传递给它时,它将返回文件中的下一行。#调用了next()一次,因此得到的是文件的第一行,其中包含文件头mathscores=[]#定义两个列表englishscores=[]forrowinreader:mathscores.append(int(row[4]))#读取索引为4的数据,默认为字符串,用int()转换为数字。englishscores.append(int(row[5]))#读取索引为5的数据,用int()转换为数字。plt.bar([1,3,5,7,9,11,13],mathscores,label='math',color='#FF2204')plt.bar([2,4,6,8,10,12,14],englishscores,label='englis',color='g')plt.legend()plt.title('scores')plt.show()

已将那些打印相关代码删除。看运行结果:

Python怎么实现从文件中加载数据

接下来,我们读取文件 ,并根据文件中的时间来绘制图表

新建一个年份的数据(真的是胡编乱造的数据),第一列是年份,第二列每年毕业的人数,第三列是每年申请人数,如图所示:

Python怎么实现从文件中加载数据

要求:

1,按年份分别显示出每年两者的人数,并用不同的颜色表示;

2、两者间也用其他颜色进行填充。

完成代码如下:

importmatplotlib.pyplotaspltimportcsv#importcsv用来导入csv模块fromdatetimeimportdatetime#引入时间相关模块filename='E:\WorkSpace\python\coding\graduatesNumbers.csv'#文件保存的绝对路径withopen(filename)asfile_csv:#是不是忘记了如何打开文件?打开文件,并将结果文件对象存储在file_csv中reader=csv.reader(file_csv)#直接调读取用csv.read()读取文件内容header_row=next(reader)dates=[]numbers=[]application_numbers=[]forrowinreader:current_date=datetime.strptime(row[0],"%Y/%m/%d")#年份,strptime()日期格式转化为字符串格式的函数dates.append(current_date)numbers.append(int(row[1]))#读取索引为1的数据,默认为字符串,用int()转换为数字,即Numbersofgraduates。application_numbers.append(int(row[2]))#读取索引为2的数据,即Numberofapplicantsplt.plot(dates,numbers,label='Numbersofgraduate',c='red')#显示第一条线plt.plot(dates,application_numbers,label='Numberofapplicant',c='green')#显示第二条线application_numbers折线plt.fill_between(dates,numbers,application_numbers,facecolor='blue',alpha=0.5)#在两线之间填充颜色alpha透明度plt.title("Thenumbersofgraduate",fontsize=24)plt.xlabel('Years',fontsize=16)plt.ylabel("Thenumbers",fontsize=16)plt.legend()plt.show()

实际运行结果如下:

Python怎么实现从文件中加载数据

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python怎么实现从文件中加载数据的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:vue修改swiper框架轮播图小圆点的样式不起作用怎么解决下一篇:

16 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18