python之生成词云示例(含文件相关的操作介绍)

本文主要介绍了python关于文件的相关操作以及利用python生成词云的介绍。

1.文件的使用

文件的类型:文件是数据的抽象和集合,从本质上,所有的文件都是二进制形式存储。

  • 文件的打开和关闭
    打开-操作-关闭 a=open(,) a.close()
读文件:
a.read(size) # 读入全部内容,如果给出参数,则读入前size长度
a.readline(size) #读入一行内容,如果给出参数,则读入改行前size长度的信息
a.readlines(hint) # 读入文件所有行,以每行元素形成列表。如果给出参数,读入前hint行
写文件:
a.write(s) # 向文件写入一个字符串或字节流
a.writelines(lines) # 将一个元素全为字符串的列表写入文件 ,这里需要注意的是和readlines 的区别,直接将元素拼接并没有换行
a.seek(offset) # 改变当前文件操作指针的位置,0-文件开头 1-文件当前位置 2-文件的结尾 这个很重要,在写文件的时候注意使用此命令

文件的打开:<变量名>=open(<文件路径和名称,源文件同目录下可省路径>,<打开模式,文本还是二进制;读还是写>)
**注意:因为\在Python中表示转义字符,所以在写地址时用/来代替\或使用双\ **

r 只读模式,文件不存在返回filenotfoundError
w 覆盖写模式,文件不存在则创建,存在则完全覆盖
x 创建写模式,文件不存在则创建,存在返回fileexistError
a 追加写模式,文件不存在时创建,存在则在文件最后追加内容
b 二进制文件模式
t 文本文件模式
+ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能。

map函数是Python内嵌的一个函数,map(function,diedainame) #第一个参数是一个函数名字,第二个参数是一种迭代类型,将第一个参数的功能作用于第二个参数的每一个元素。

2. Wordcloud库

  • 安装(cmd命令行)pip install wordcloud 注意:在这里库的名字是小写,但是对象有大写,比如wordcloud库把词云当做一个WorldCloud对象
  • 常规方法
w=wordcloud.WordCloud()  #可以在()增加参数width= 或者height= 来设置宽度和高度,
                      #此外还可以指定字体大小,如min_font_size= ;max_font_size= ; font_step 可以指定字体字号的步进间隔
                      #max_words 指定词云显示的最大单词数量;stop_words 指定词云的排除词列表,即不显示的单词列表
                      # mask 参数可以指定词云的形状,默认为长方形,需要引用imread()函数
                      #background_color 指定词云图片的背景颜色,默认为黑色
w.generate(txt) 向WordCloud对象w中加载文本txt
w.to_file(filename) 将词云输出为图像文件,.png或.jpg格式 比如 w.to_file(outfile.png)
  • wordcloud 库的常规方法
    在使用wordcloud使用空格来分隔单词,因此在生成中文词云的时候需要首先将文本分隔,并使用join函数增加空格分隔
    步骤1:配置对象参数 步骤2:加载词云文本 步骤3:输出词云文件
#示例
import wordcloud
c=wordcloud.WordCloud() #生成词云对象
c.generate("wordcloud by python") #将一段文本加载到词云中
c.to_file("pywordcloud.png") #生成图片

中文文本生成词云实例

#v1.py
import jieba
import wordcloud
from scipy.misc import imread
mask=imread("fivestars.png")#设置词云的形状,首先得有一个底色为白色的形状图
f=open("人工智能之python.txt","r",encoding="utf-8")
t=f.read()
f.close
ls=jieba.lcut(t)
txt="".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc",mask=mask,width=1000,height=200,boucground_corlor="write")
w.generate(txt)
w.to_file("grwordcloud.png")