Python生成词云图为什么会报错

img


文件名没有错,jieba库以及wordcloud库也下载成功,字体文件也下载到了Python项目文件夹里。

  • 建议你看下这篇博客👉 :利用python的jieba库、wordcloud库,实现中英文文本的快速分词(代码详解版)
  • 除此之外, 这篇博客: 【Python入门】——文件读写 Jieba库分词 WordCloud库词云制图中的 1.1文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 文本文件

    文件时数据的抽象和集合,由单一特定编码组成的文件,如UTF-8编码

    二进制文件

    直接由比特0和1组成,没有统一字符编码

    文件处理的步骤:打开——操作——关闭

    1. 打开

    #<变量名> = open(<文件路径>,<打开模式>)
    七种打开文件的模式
    1.'r' #只读模式,如果文件不存在,返回FileNotFoundError,默认
    2.'w' #覆盖写模式,文件不存在则创建,存在则完全覆盖
    3.'x' #创建写模式,文件不存在则创建,存在则返回FileExistsError
    4.'a' #追加写模式,文件不存在则创建,存在则在文件最后追加内容
    5.'b' #二进制文件模式
    6.'t' #文本文件模式,默认
    7.'+' #与r/w/x/a一同使用,在原功能基础上增加同时读写功能
    #文本形式只读模式打开文件
    tf = open("f.txt","rt") #
    print(tf.readline())
    tf.close()
    
    #二进制形式只读模式打开文件
    bf = open("f.txt","rb")
    print(bf.readline())
    bf.close()
    三个"读"方法
    1.read(size) #每次读取整个文件size个字符 默认全部
    2.readlines(hint) #一次读取前hint,然后将文件拆成多行,返回一个列表
    3.readline()  #读取一行返回一行 
    

    2.操作

    # 遍历全文本的方法
    #一、一次全部读入
    fname = input("输入文件名称")
    fo = open(fname,"r")
    txt = fo.read()
    #对全文txt进行处理
    fo.close()
    
    #二、利用loop每次读入一部分
    fname = input("输入文件名称")
    fo = open(fname,"r")
    txt = fo.read(2)
    while txt != "":
    	#对txt进行处理
        txt = fo.read(2)
    fo.close()
    
    #逐行遍历
    fname = input("输入文件名称")
    fo = open(fname,"r")
    for line in fo.readlines():
        print(line)
    fo.close()
    

    3.文件写入

    <f>.write(s)   #向文件写入一个字符串或字节流
    #例如   f.write("中国是一个伟大的国家")
    <f>.writelines(lines) #将一个元素全为字符串的列表拼接后写入文件
    #例如 ls = ["中国","法国","美国"]  f.writelines(ls)
    <f>.seek(offset) #改变当前文件操作指针的位置offset 0-文件开头  1-当前位置  2 - 文件结尾
    # 例如
    fo = open("output_fo.txt","w+")
    ls = ["中国","法国","美国"]
    fo.writelines(ls) #写完文件 文件指针在结尾
    fo.seek(0)  #要回到开头才可以打印
    for line in fo: #按行输出
        print(line)
    fo.close()
    

    实例:自动轨迹绘制

    #使用Turtle自动轨迹绘制
    #数据接口格式:
    #长度  左0右1 角度 RGB颜色
    import turtle as t
    t.title("自动轨迹绘制")
    t.setup(800,600,0,0)
    t.pencolor("red")
    t.pensize(5)
    #数据读取
    datals = []  #建立数据列表
    f = open("data.txt")
    for line in f:
        line = line.replace("\n","")
        datals.append(list(map(eval,line.split(",")))) #map作用:文本依据','分隔后 每一个元素都使用eval操作
    f.close()
    #自动绘制
    for i in range(len(datals)):
            t.pencolor(datals[i][3],datals[i][4],datals[i][5])
            t.fd(datals[i][0])
            if datals[i][1]:
                t.right(datals[i][2])
            else:
                t.left(datals[i][2])
    t.done()
    
  • 您还可以看一下 张景平老师的Python零基础入门(计算机二级考试)课程中的 获取和安装第三方库 Pyinstaller、jieba、wordcloud库小节, 巩固相关知识点