文件名没有错,jieba库以及wordcloud库也下载成功,字体文件也下载到了Python项目文件夹里。
Python生成词云图为什么会报错
文件名没有错,jieba库以及wordcloud库也下载成功,字体文件也下载到了Python项目文件夹里。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 - 建议你看下这篇博客👉 :利用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库小节, 巩固相关知识点
解决 无用评论 打赏 举报
悬赏问题
- ¥60 ESP32怎么烧录自启动程序
- ¥50 html2canvas超出滚动条不显示
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址
- ¥15 elmos524.33 eeprom的读写问题
- ¥15 使用Java milo连接Kepserver服务端报错?
- ¥15 用ADS设计一款的射频功率放大器
- ¥15 怎么求交点连线的理论解?
- ¥20 软件开发方法学习来了
- ¥15 微信小程序商城如何实现多商户收款 平台分润抽成