文件的读取与操作

#示例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

一、用pandas读写excel文件

import pandas as pd              #导入第三方库pandas,如果没有需要安装 pip install pandas 
pd.read_excel('../Stu_pack/wordcloud/school.xls',index_col=0)

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  #导入读取图片二进制文件
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='#1E90FF')                                  #(2)创建词云对象

wc.generate(fr)  #(3)加载词云文本

wc.to_file('../R&Q_pic/test.png')                         #(4)输出词云图片

#Image.open('../R&Q_pic/test.png')                       #打开读取指定文件
plt.imshow(wc)    #用plt绘制词云图片,并显示出来
plt.axis('off')

plt.show()

 

#示例2:生成提供的图形词云图片(原文件为英文或中文)                
import wordcloud      #(1)导入词云库
from PIL import Image  #导入读取图片二进制文件
import jieba

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/test1.png')                         #(4)输出词云图片

Image.open('../R&Q_pic/test1.png')                       #打开读取指定文件

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值