r-ll-r 2023-05-13 15:18 采纳率: 75%
浏览 25
已结题

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

img


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

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-13 18:34
    关注
    • 建议你看下这篇博客👉 :利用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库小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月14日
  • 创建了问题 5月13日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成