一、Excel文件的读取与写入
1、读取操作步骤:
(1)导入模块xlrd
(2)打开工作簿Book
(3)指定工作簿的表单Sheet
(4)根据行列序号读取内容
#实例1、读取Stu_pack中的Excel文件内容school.xls,将结果保存以列表中
#(1)导入模块xlrd
import xlrd
#(2)打开工作簿Book
wb=xlrd.open_workbook('../Stu_pack/school.xls')
#(3)指定工作簿的工作表Sheet
sheet=wb.sheet_by_index(0)
#(4)根据行列序号读取内容
schools=[] #定义一个二维列表存放行内容
for row in range(sheet.nrows):
school=[] #定义一个一维列表存放单元格内容
for col in range(sheet.ncols):
content=sheet.cell_value(row,col)
school.append(content) #将单元格的内容追加到一维列表里面
schools.append(school) #将每行的内容追加到二维列表里面
#从列表中读取数据
i=1
for school in schools:
if i<12:
print(school)
i=i+1
运行结果如图:
2、Excel文件的写入操作步骤:
(1)导入模块:xlwt
(2)构造工作簿:Workbook
(3)为工作簿添加表单:Worksheet
(4)根据行列序号写入内容
(5)保存文件
示例2、将示例1读取的Excel文件内容,写入到另一个Excel中并保存的R&Q_pic文件夹里,对学校所在省份进行简单判断。第一行合并单元格显示标题。
#(1)导入模块:xlwt和xlrd
import xlrd
import xlwt
#(2)读取文件内容
def read_excel(file_name):
wb=xlrd.open_workbook(file_name)
sheet=wb.sheet_by_index(0)
schools=[] #定义一个二维列表存放行内容
for row in range(sheet.nrows):
school=[] #定义一个一维列表存放单元格内容
for col in range(sheet.ncols):
content=sheet.cell_value(row,col)
school.append(content) #将单元格的内容追加到一维列表里面
schools.append(school) #将每行的内容追加到二维列表里面
return schools #返回二维列表值
#(3)写入文件内容
def write_excel(schools):
#(2)构造工作簿:Workbook
wb=xlwt.Workbook(encoding='utf-8')
#(3)为工作簿添加表单:Worksheet
sheet=wb.add_sheet('上海市高校信息表')
#(4)根据行列序号写入内容
sheet.write_merge(0,0,0,6,'上海市高校信息表') #合并第一行第一个单元格到第六个单元格写入表头
for col in range(7): #写入列表名称(列表字段)
sheet.write(1,col,schools[0][col])
row_num=2
for school in schools:
if school[2]=='上海市':
for col in range(7):
sheet.write(row_num,col,school[col])
row_num=row_num+1
wb.save('../R&Q_pic/上海市高校信息表.xls')
#调用函数
schools=read_excel('../Stu_pack/school.xls')
write_excel(schools)
运行结果如图:
#示例2:将示例1读取的 Excel 文件内容,写入到另一个Excel中,对学校所在省份进行简单判断。第一行合并单元格显示标题。
#(1)导入模块:xlwt
import xlrd
import xlwt
#(2)读取文件内容
def read_excel(file_name): #定义读取文件函数
wb = xlrd.open_workbook(file_name) #创建读取文件的对象wb
sheet = wb.sheet_by_index(0)
schools = []
for row in range(sheet.nrows):
school = []
for col in range(sheet.ncols):
content = sheet.cell_value(row,col)
school.append(content)
schools.append(school)
return schools #提供返回值
#(3)写入文件内容
def write_excel(schools): #定义写入文件函数
#(2)构造工作簿:Workbook
wb = xlwt.Workbook(encoding = 'utf-8') #创建写入文件的对象wb
#(3)为工作簿添加表单:Worksheet
s = wb.add_sheet('上海市高校信息表') #创建一个表单
#(4)根据行列序号写入内容
#添加文本的样式(字体和对齐)
font = xlwt.Font() #字体
font.bold = True
font.height = 400
font.underline = True
font.colour_index = 6 #0:黑,1:白,2:红,3:绿,4:蓝,5:黄,6:紫
align = xlwt.Alignment() #对齐
align.horz = 2 #水平居中 1:左,2:中,3:右
align.vert = 1 #垂直居中 0:上,1:中,2:下
style = xlwt.XFStyle() #样式
style.font = font
style.alignment = align
s.write_merge(0,0,0,6,'上海市高校信息表',style) #写表标题并合并单元格(A1:A7)
for col in range(7): #写表列表名称
s.write(1,col,schools[0][col]) #第2行第1列开始写内容school[0][col]
row_num = 2 #从第3行开始写数据
for school in schools: #一行一行写数据内容
if school[2] == '上海市':
for col in range(7):
s.write(row_num,col,school[col])
row_num = row_num + 1
#(5)保存文件内容
wb.save('../R&Q_pic/上海市高校信息表.xls')
school_list = read_excel('../Stu_pack/wordcloud/school.xls') #调用读取函数,将素材里的文件school.xls作为实参传递给形参
write_excel(school_list) #调用写入函数,将读取的数据作为实参传递给形参写入到文件"上海市高校信息表.xls"里保存
schools_list = read_excel('../R&Q_pic/上海市高校信息表.xls')
i=1
for school in schools_list:
if i<13:
print(school)
i+=1
pip install xlwt
一、用pandas读写excel文件
import pandas as pd #导入第三方库pandas,如果没有需要安装pip install pandas
data = pd.read_excel('../Stu_pack/wordcloud/school.xls',index_col=0) #创建文件对象d
data
data.head(10)
data = data[data['所在省份']==['上海市']
data = data[data['是否985']=='是']
data
data.to_excel("../R&Q_pic/上海市高校信息.xls")
二、词云库wordcloud的安装与应用
1、安装 pip install wordcloud #网络安装
python - m pip install 本地路径 #本地安装
2、应用
生成步骤:
创建词云对象-->加载词云文本-->输出词云图片(文件)
(1)默认的矩形词云图片
(2)提供的图形词云图片
#示例1:生成默认的矩形词云图(原文件为英文)
import wordcloud #(1)导入词云库
from PIL import Image #导入图片库
with open('../Stu_pack/wordcloud/Dream It Possible.txt',encoding='utf-8') as file: #读取词云文件
fr=file.read()
fr=jieba.lcut(fr) #将文本内容进行词语分割并用空格分隔开来
fr=' '.join(fr)
wc=wordcloud.WordCloud(font_path='C:\windows\Fonts\STCAIYUN.TTF') #(2)创建词云对象
wc.generate(fr) #(3)加载词云文本
wc.to_file('../R&Q_pic/test.jpg') #(4)输出词云图片(文件)
Image.open('../R&Q_pic/test.jpg')
pip show wordcloud
pip install wordcloud
#示例2:生成提供的图形词云图片
import wordcloud #(1)导入词云库
from PIL import Image
import jieba
from imageio import imread
import matplotlib.pyplot as plt
with open('../Stu_pack/wordcloud/Dream It Possible.txt',encoding = 'utf-8')as file:
fr = file.read()
fr = jieba.lcut(fr)
fr = ''.join(fr)
#im = Image.open('../Stu_pack/wordcloud/Love_Star.PNG')
im = imread('../Stu_pack/wordcloud/Love_Star.PNG')
wc = wordcloud.WordCloud(mask = im ,font_path = 'C:\Windows\Fonts\STCAIYUN.TTF',background_color ='pink')#(2)创建词云对象
wc.generate(fr) #加载词云文本
wc.to_file('../R&Q_pic/test1.png') #输出词云图片(文件)
#Iamge.open('../R&Q_pic/test1png')
plt.imshow(wc) #用plt绘制词云图片并显示出来
plt.axis('off')
plt.savefig('../R&Q_pic/test2.png')
plt.show()