网页数据的获取----数据的存储

目录

  • 文本文件
  • Excel文件
  • CSV文件

正文

文本文件

  • Python程序一般通过内置的open()函数打开一个txt文本文件创建一个file对象,open()函数常用的参数有文件名、文件的打开方式和编码方式,语法如下:
    f=open(filename,mode,encoding)
    其中f表示打开文件对象;filename表示文件名;mode表示文件的访问模式,常见的访问模式有"r"、“w”、“a”,"r"表示只读模式,"w"表示写入模式,"a"表示追加模式;encoding表示文本文件的编码方式,其默认编码方式是ASCII编码,ASCII编码是无法处理中文字符的,如果需要处理中文字符转换为utf-8编码
  • Python提供了多种方法用于文本文件的读写操作,常用的方法是调用read()和write()函数读取和写入文本文件。write()函数可以将一个字符串写入到文件中,常见用法为:
    f.write(string)
    其中f表示打开文本对象,string表示写入的字符串,常见用法为:
    f.read([count])
    其中f表示打开文件对象,count表示要从已打开文件中读取的字节计数。
    read()函数从文件的开头开始读入,如果没有传入参数count,会尽可能多地读取更多的内容。
    文件打开完成读写操作后需要关闭文件,使用close()函数可以关闭文件,常见用法如下:
    f.close()
  • 】将字符串"computer"写入course.txt文件中,并将course.txt文件保存在dbooks文件夹下。
  • 【分析】将字符串写入文件,文件保存在dbooks文件夹下,因此在用open()函数打开文件时,filename参数需要带上路径,filename=‘d:\books\course.txt’,访问模式为"W"。
  • 代码如下
filename='d:\\books\\course.txt'
f=open(filename,'w')
f.write('computer')
f.close()
  • 运行结果
    在这里插入图片描述
    在这里插入图片描述
  • 】打开course.txt文件,读取全部内容。
  • 分析】读取文本文件的内容,访问模式要写"r"
  • 代码如下
f=open('d:\\books\\course.txt','r')
string=f.read()
f.close()
print(string)
  • 运行结果
    在这里插入图片描述

Excel文件

  • PythonExcel文件的操作提供许多模块的支持,openpyxl模块专门处理Excel2007及以上版本产生的xlsx文件,可以对xlsx文件实现读写操作。
  • 在程序中通过import openpyxl语句引入此模块,调用openpyxl.Workbook()取得工作簿Workbook对象,语句如下:workbook=openpyxl.Workbook()
    数据写入单元格,有两种方法,第一种方式是使用索引或工作表的cell()方法,通过指定单元格行列的方式将数据写入工作表,语句如下:
    worksheet.cell(row=row_num,column=col_num).value=data
    第二种方式是使用append()函数通过指定单元格行的方式将数据写入工作表,默认情况下从第1行开始存入,语句如下:
    worksheet.append(data)
    将数据写入到工作表后,可以使用workbook.save()函数将创建的工作簿保留下来,语句如下:workbook.save(file_name)
    安装pip install openpyxl
  • 】将某大学2019年某地区部分专业招生计划数据,其中俄语8人、应用物理学10人、信息与计算科学12人、数学与应用数学10人、智能科学与技术18人,物联网工程12人、软件工程22人、计算机科学与技术14人、写入Enrollmentplan.xlsx工作簿中,表名为2019部分专业计划招生人数。
  • 分析】招生计划包括专业、计划人数两项可以用列表表示,数据加上表头一共有九行,需要九个列表,将这九个列表合成嵌套的列表。程序调用openpyxl.Workbook()函数创建工作簿,调用openpyxl.Workbook().active获取工作表,利用嵌套循环将列表中的数据写入Cell对象。
  • 代码如下
import openpyxl
data=[['专业','计划人数'],['俄语','8'],['应用物理学','10'],['信息与计算科学','12'],['数学与应用数学','10'],['智能科学与技术','18'],['物联网工程','12'],['软件工程','22'],['计算机科学与技术','14']]    #将招生计划数据存入列表data中
wb=openpyxl.Workbook()    #创建工作簿对象wb
ws=wb.active    #获取活跃的工作表ws
ws.title='2019部分专业计划招生人数'    #工作表ws的名字改为'2019部分专业计划招生人数'
r=1    #表的行号r从1开始
for line in data:
	for col in range(1,len(line)+1):    #变量col取值从1到列表line的长度
		ws.cell(row=r,column=col).value=line[col-1]    #将line列表中的值存入
	r+=1    #行号r加1,指向下一行
wb.save('Enrollmentplan.xlsx')    #保存工作簿,起名为Enrollmentplan.xlsx
  • 运行结果
    在这里插入图片描述
    在这里插入图片描述

  • 】将字典中的数据{‘北京市’:‘北京’,‘黑龙江省’:‘哈尔滨’,‘青海省’:‘西宁’,‘山东省’:‘济南’,‘湖北省’:‘武汉’,‘江苏省’:‘南京’,‘新疆’:‘乌鲁木齐’,‘四川省’:‘成都’}存入ProvincialCapital.xlsx文件。

  • 【分析】获取的数据以字典的形式存在,可以先将字典里面的数据存入列表,再写入Excel文件中。利用append()函数将字典中的每对数据(键,值)以列表[键,值]形式传入列表中,形成一个嵌套的列表,再利用append()函数将列表内的内容存入工作表。

  • 【代码如下】

import openpyxl    #引入相关库
wb=openpyxl.Workbook()    #创建工作簿对象wb
ws=wb.active    #获取活跃的工作表ws
#对ws的单个单元格传入数据
ws['A1']='省份'
ws['B1']='省会'
data={'北京市':'北京','黑龙江省':'哈尔滨','青海省':'西宁','山东省':'济南','湖北省':'武汉','江苏省':'南京','新疆':'乌鲁木齐','四川省':'成都'}    #将数据存入字典data
data_excel=[]    #创建空列表data_excel
for each in data:    #变量each取值字典data中的每个键值对
	data_excel.append([each,data[each]])    #将变量each的值转换成列表[each,data[each]]追加到列表data_excel中
for each in data_excel:    #读取列表data_excel中的每个值存入列表each
	ws.append(each)    #将列表each的内容从第1行开始依次存入工作表
wb.save('ProvincialCapital.xlsx')    #保存工作簿,起名ProvincialCapital.xlsx
  • 【运行结果】
    在这里插入图片描述
    在这里插入图片描述
  • 【例】输出ProvincialCapital.xlsx文件中的数据。
  • 【分析】ProvincialCapital.xlsx文件中的数据可以以列表的形式输出,也可以以字典形式输出。
  • 【代码如下】(以列表形式输出)
import openpyxl
workbook=openpyxl.load_workbook('ProvincialCapital.xlsx')
worksheet=workbook.worksheets[0]
rows=worksheet.max_row
cols=worksheet.max_column
s=[]    #定义空列表,用于保存工作表所有数据
j=2    #变量表示工作表的行,从第2行开始取值,s取值2
for x in range(rows-1):
	t=[]    #定义空列表t,用于保存工作表当前行的数据
	for i in range(1,cols+1):    #变量i的取值从1到工作表的列数
	#将行j列i单元格的值存入变量value
		value=worksheet.cell(row=j,column=i).value
		t.append(value)    #将value的值追加到列表t
	s.append(t)    #将列表t的值追加到列表s
	j+=1    #变量j加1,指向下一行
print(s)    #输出列表s
  • 【运行结果】
    在这里插入图片描述
  • 【代码如下】(以字典形式输出)
import openpyxl
workbook=openpyxl.load_workbook('ProvincialCapital.xlsx')
worksheet=workbook.worksheets[0]
rows=worksheet.max_row
cols=worksheet.max_column
s=[]    #定义空列表s,用于保存工作表所有的数据
j=2    #变量表示工作表的行,从第2行开始取值,s取值2
for x in range(rows-1):    #变量x的取值从0到工作表的行数-2
	t={}    #定义空字典t,用于保存工作表当前行的数据
	for i in range(1,cols+1):    #变量i的取值从1到工作表的列数
		value=worksheet.cell(row=j,column=i).value
		#取到第一行每列的key值
		dict_value=worksheet.cell(row=1,column=i).value
		t[dict_value]=value    #将当前行的数据以键值对的形式存入字典t
	s.append(t)    #将列表t的值追加到列表s
	j+=1    #变量j加1,指向下一行
print(s)    #输出列表s
  • 【运行结果】
    在这里插入图片描述

CSV文件

  • CSVComma_Separated Values的简写,中文称为逗号分隔值,有时也称为字符分隔值,因为分隔字符可以不是逗号。CSV文件以纯文本形式存储表格数据(数字和文本),文件由任意数目的记录组成,记录间以换行符分隔,每条记录由字段组成,字段间的分隔符是字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
  • CSV文件最常见的应用是在不同程序之间转移表格数据,因为绝大多数程序语言都支持CSV文件。CSV文件可以用记事本或excel打开,两者打开的区别在于记事本打开显示分隔符,用excel打开不显示分隔符。
  • Python语言提供了CSV模块对CSV文件进行操作。在对CSV文件进行操作时,首先利用import csv语句导入csv模块,然后利用with open() as语句打开文件,with open() as 语句常见的用法如下:
    with open(csvfile,mode,encoding,newline=None) as fp
    CSV文件打开后,**csv.writer()**函数创建初始化写入对象,用法如下:
    writer(fp,dialect=‘excel’,**fmtparams)
    csv.writer().writerow()、csv.writer().writerows()函数将数据写入到CSV文件中,csv.writer.writerow()函数将数据单行写入CSV文件,而csv.writer().writerows()函数将多行数据一块写入CSV文件。
  • 】将学生信息,如表所示,写入score.csv文件。
学号姓名大学计算机成绩程序设计成绩
10001张三9593
10002李四8790
10003王五7180
  • 分析】学生信息包括学号、姓名、大学计算机成绩、程序设计成绩四项,可以用列表表示,加上表头一共四行,需要4个列表。程序可以利用with open() as函数创建score.csv文件,利用csv.writer函数创建初始化写入对象,利用csv.writer().writerow()函数将每个列表数据写入score.csv文件,也可以先利用csv.writer().writerow()函数将表头信息写入score.csv文件,再利用csv.writer().writerow()函数将三行学生信息一块写入score.csv文件。
  • 代码如下
import csv    #引入相关的库
with open('score.csv','w',newline='') as fp:    #以"只写"的形式打开文件,如果文件不存在新建并打开
	writer=csv.writer(fp)    #创建文件写入对象writer
	writer.writerow(['学号','姓名','大学计算机成绩','程序设计成绩'])    #将列表内容写入文件
	writer.writerow(['10001','张三','95','93'])    #将列表内容写入文件
	writer.writerow(['10002','李四','87','90'])    #将列表内容写入文件
	writer.writerow(['10003','王五','71','80'])    #将列表内容写入文件
  • 运行结果
    • 用excel打开
      在这里插入图片描述

在这里插入图片描述
- 用记事本打开
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 【例】利用csv模块中的csv.reader函数读取文件score.csv中的数据。
    代码如下:
import csv    #引入相关的库
with open('score.csv','r') as fp:    #以"只读"的形式存入row
	reader=csv.reader(fp)    #创建csv文件操作对象reader
	for row in reader:    #将文件每行的内容以列表的形式存入row
		print(row)    #输出row
  • 运行结果
    在这里插入图片描述
    知识点整理不易,如果对你有帮助,给个免费的赞支持一下吧!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张同学啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值