• Python学习第六天学习汇总(python文件处理和词云的使用)


    一、文件的使用

    文件处理分为三个步骤:

    • 文件的打开
    • 对打开的文件的操作
    • 关闭文件

    原理流程图:

    文件的操作

    1.1 文件的打开

    ​ 使用open方法文件的打开

    注:

    ​ 文件路径和名称:"D:/PYE/f.txt" 或 "D:PYEf.txt"

    ​ 源文件同目录可省路径:"./PYE/f.txt" 或 "f.txt"

    1.2 文件的操作

    文件的打开模式 描述
    'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError
    'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
    'x' 创建写模式,文件不存在则创建,存在则返回FileExistsError
    'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容
    'b' 二进制文件模式
    't' 文本文件模式,默认值
    '+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
    • 文本形式、只读模式、默认值:f = open("f.txt")
    • 文本形式、只读模式、同默认值:f = open("f.txt", "rt")
    • 文本形式、覆盖写模式:f = open("f.txt", "w")
    • 文本形式、追加写模式+ 读文件:f = open("f.txt", "a+")
    • 文本形式、创建写模式:f = open("f.txt", "x")
    • 二进制形式、只读模式:f = open("f.txt", "b")
    • 二进制形式、覆盖写模式:f = open("f.txt"):f = open("f.txt", "wb")

    1.3 文件的关闭

    <变量名>.close() # 变量名为文件句柄

    1.4 文件使用案例

    # 文件的读取
    f = open(r'F:shpython11pycharmworkfirst_projectfilefile.py','r')
    data = f.read()
    print(data)
    f.close()
    
    # 文件的编辑(覆盖写入,清空文件后写入)
    fw = open(r'F:shpython11pycharmworkfirst_projectfilefile.py','w+')
    fw.writelines(r'abc=new file')
    f.close()
    

    二、文本词频统计

    ​ 文本词频统计

    • 需求:一篇文章,出现了哪些词?哪些词出现得最多?
    • 该怎么做呢?

    2.1 英文词频统计

    程序代码:

    # 1.首先先打开要统计的文件
    f = open(r'F:shpython11pycharmworkfirst_projectfilehamlet.txt','r',encoding='utf8')
    # 把数据读取出来并且讲所有字符转为小写字母
    data = f.read().lower()
    # 用一个字符串接收所有 可能在文本中出现的 标点符号和其他字符
    zf = r'!"#$%&()*+,-.'+"'"+r'/:;<=>?@[\]^_‘{|}~'
    # 去除文本中的多余的字符和标点符号
    for i in data:
        if i in zf:
            data = data.replace(i," ")
    # 对读取的内容进行切分成序列
    data_split = data.split()
    # 创建一个用来存储的字典
    data_dict = {}
    # 循环序列将重复的单词,计数后放入字典中
    for i in data_split:
        if i not in data_dict:
            data_dict[i] = 1
        else:
            data_dict[i] += 1
    # 将字典转为序列 进行计数排序
    list_data = list(data_dict.items())
    
    # 定义一个取值函数
    def find_values(i):
        return i[1]
    list_data.sort(key=find_values,reverse=True)
    # 循环输出出现次数最多的是个单词
    for i in list_data[:10]:
        print(f'{i[0]:^9} {i[1]:^5}')
    
    

    运行结果:

    the 953
    and 856
    to 657
    of 581
    i 519
    you 498
    a 471
    my 447
    in 388
    hamlet 366

    2.2 中文词频的使用

    程序代码:

    # # 中文词频统计
    # 导入jieba库
    import jieba
    # 创建一个字典 用来
    data_dict = {}
    excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此","商议","如何","丞相","主公",
                "军士","左右","军马","引兵","次日","大喜"}
    f = open(r'F:shpython11pycharmworkfirst_projectfile	hreekingdoms.txt','r',encoding='utf8')
    data = jieba.lcut(f.read())
    for word in data:
        if len(word) == 1:
            continue
        if word in excludes:
            continue
        if '曰' in word:
            word = word.replace('曰',"")
        if word in data_dict:
            data_dict[word] += 1
        else:
            data_dict[word] = 1
    def find_values(i):
        return i[1]
    list_data = list(data_dict.items())
    list_data.sort(key=find_values,reverse=True)
    for i in list_data[:10]:
        print(f'{i[0]:^8} {i[1]:^5}')
    

    运行结果:

    孔明 1226
    玄德 975
    曹操 953
    关公 510
    张飞 358
    吕布 300
    赵云 278
    刘备 277
    云长 265
    孙权 264

    三、词云的使用

    3.1 基本分析

    基本思路

    • 步骤1:读取文件、分词整理
    • 步骤2:设置并输出词云
    • 步骤3:观察结果,优化迭代

    3.2 具体实现

    实例:

    ### 制作词云
    # 导入wordcloud云库模块
    import wordcloud
    # 导入jieba模块库
    import jieba
    
    # 制作一个简单的词云
    # 要制作成云库的文本内容
    txt = "刘梦是这个世界最漂亮的女孩没有之一"
    # 设置云库的背景颜色,字体,宽度,高度等
    w = wordcloud.WordCloud(background_color="white",font_path=r"C:WindowsFontsFZLTCXHJW.TTF",width=400,height=400)
    # 将内容 放入云库中
    w.generate(" ".join(jieba.lcut(txt)))
    # 将制作好的云词导出来
    w.to_file("test.png")
    

    运行结果:

    实例二:

    # 导入wordcloud云库模块
    import wordcloud
    # 导入jieba库
    import jieba
    # # 词云进阶
    # 打开文本文件
    f = open(r'F:shpython11pycharmworkfirst_projectfile	hreekingdoms.txt','r',encoding='utf8')
    # 将文本内容放大 data 变量中 存储为等下要制作的云库内容
    data = " ".join(jieba.lcut(f.read()))
    # 设置云库的背景颜色,字体,宽度,高度等
    w = wordcloud.WordCloud(background_color="white",font_path=r"C:WindowsFontsFZLTCXHJW.TTF",width=1000,height=800)
    w.generate(data)
    w.to_file("test2.png")
    

    运行结果:

    今天的课后练习实例题

    https://www.cnblogs.com/foreversun92/p/11215222.html

    总结

        今天的上课学习的是python的文件的使用、文本词频统计分析和词云的制作。python文件的使用是一个比较重点的东西,因为以后编程是需要和文件之间进行交互的,而掌握这个知识点,对我们的之后做项目等都非常有帮助。而文本词频统计,就是对之前学习的东西和文件的一种结合使用的小案例,帮助我们更深的去了解和学习python的具体知识点。而词云就是一个比较好玩的东西,用来做一些自己感兴趣的东西也是非常不错的呢。
  • 相关阅读:
    【面经】网易互娱一面
    【Go】简易到简陋的web服务器
    【Go】连接本地MySQL读取数据
    【MySQL】Windows10下安装
    【深入理解计算机系统】第十三章-并发编程
    【Python】数据库查询 & 批量下载文件
    【深入理解计算机系统】第十二章-网络编程
    grep的时候Binary file matches **.log 怎么解决
    高并发系统架构思想
    mysql 索引
  • 原文地址:https://www.cnblogs.com/foreversun92/p/11215656.html
Copyright © 2020-2023  润新知