网页数据的获取

阅读: 评论:0

网页数据的获取

网页数据的获取

目录

  • 文本文件
  • 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表示打开文件对象,count表示要从已打开文件中读取的字节计数。
    read()函数从文件的开头开始读入,如果没有传入参数count,会尽可能多地读取更多的内容。
    文件打开完成读写操作后需要关闭文件,使用close()函数可以关闭文件,常见用法如下:
    f.close()
  • 】将字符串"computer"写入<文件中,并将<文件保存在dbooks文件夹下。
  • 【分析】将字符串写入文件,文件保存在dbooks文件夹下,因此在用open()函数打开文件时,filename参数需要带上路径,filename=‘d:’,访问模式为"W"。
  • 代码如下
filename='d:\books\'
f=open(filename,'w')
f.write('computer')
f.close()
  • 运行结果

  • 】打开<文件,读取全部内容。
  • 分析】读取文本文件的内容,访问模式要写"r"
  • 代码如下
f=open('d:\books\','r')
string&#ad()
f.close()
print(string)
  • 运行结果

Excel文件

  • PythonExcel文件的操作提供许多模块的支持,openpyxl模块专门处理Excel2007及以上版本产生的xlsx文件,可以对xlsx文件实现读写操作。
  • 在程序中通过import openpyxl语句引入此模块,调用openpyxl.Workbook()取得工作簿Workbook对象,语句如下:workbook=openpyxl.Workbook()
    数据写入单元格,有两种方法,第一种方式是使用索引或工作表的cell()方法,通过指定单元格行列的方式将数据写入工作表,语句如下:

    第二种方式是使用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中的每个值存入列表eachws.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单元格的值存入变量valuevalue&#ll(row=j,column=i).valuet.append(value)    #将value的值追加到列表ts.append(t)    #将列表t的值追加到列表sj+=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到工作表的行数-2t={}    #定义空字典t,用于保存工作表当前行的数据for i in range(1,cols+1):    #变量i的取值从1到工作表的列数value&#ll(row=j,column=i).value#取到第一行每列的key值dict_value&#ll(row=1,column=i).valuet[dict_value]=value    #将当前行的数据以键值对的形式存入字典ts.append(t)    #将列表t的值追加到列表sj+=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)    #创建文件写入对象writerwriter.writerow(['学号','姓名','大学计算机成绩','程序设计成绩'])    #将列表内容写入文件writer.writerow(['10001','张三','95','93'])    #将列表内容写入文件writer.writerow(['10002','李四','87','90'])    #将列表内容写入文件writer.writerow(['10003','王五','71','80'])    #将列表内容写入文件
  • 运行结果
    • 用excel打开


- 用记事本打开


  • 【例】利用csv模块中的ader函数读取文件score.csv中的数据。
    代码如下:
import csv    #引入相关的库
with open('score.csv','r') as fp:    #以"只读"的形式存入rowreader&#ader(fp)    #创建csv文件操作对象readerfor row in reader:    #将文件每行的内容以列表的形式存入rowprint(row)    #输出row
  • 运行结果

    知识点整理不易,如果对你有帮助,给个免费的赞支持一下吧!

本文发布于:2024-01-27 19:47:42,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063560632271.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:网页   数据
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23