文章目录

  • 文件
    • 文件类型
    • 文件的打开和关闭
    • 文件内容的读取
    • 利用with语句
    • 数据文件的写入
    • 实例:利用文件绘制轨迹
  • join方法
    • 一维数据的表示
    • 一维数据的写入处理
    • 二维数据的表示
  • jieba库
  • wordcloud库

文件

文件类型

所有文件采用两种方式进行展示:文本文件,二进制文件。
文本文件:由单一特定编码组成的文件,如UTF-8编码。如txt文件,py文件。
二进制文件:直接由比特0和1组成,没有统一字符编码。如png文件,avi文件。

文件的打开和关闭

不对文件进行处理的时候,文件处于存储状态。
如果一个程序想处理一个文件,首先要使这个文件变成占用状态。
在占用状态中,一个程序可以唯一的,排他的,对文件进行相关的处理。

存储状态和占用状态之间通过文件的打开和关闭进行转换。

f=open("f.txt")         #将默认使用文本形式打开,和只读模式。不能向文件中写入任何信息。
f=open("f.txt",'rt')    # r是读模式,t是文本形式。同默认值。
f=open("f.txt",'w')     #默认文本形式打开,w是覆盖写模式
f=open("f.txt",'a+')    #追加写模式, +号意思是并且能够读取文件内容
f=open('f.txt','x')     #创建写模式
f=open('f.txt','b')    #二进制方式打开,只读模式
f=open('f.txt','wb')   #二进制形式打开,覆盖写模式
#文件关闭
f.close()

文件内容的读取

f.read(size)        #读入全部文件内容,返回一个字符串,可选参数size,给出size。会读入前size长度的信息。
f.readline(size)    #读入一行内容,如果给出参数,会读入该行前size长度的信息。
f.readlines(hint)   #读入文件所有行,以每行为元素形成列表,每一行是一个字符串,如果给出参数,读入前hint行。

举个栗子:

fo=open('C:\\Users\\这里是马赛克\\Desktop\\Untitled.txt','r')
for line in fo.readlines(): #一个列表,文本的每行是列表的一个元素。
#for line in fo:  #也可以直接使用 for line in fo:分行读入而不是像上面那样一次性读入print(line)
fo.close()

利用with语句

使用with语句可以让系统在文件操作完毕后自动关闭文件。而不必在操作完毕后去调用close方法。

with open('filename','打开模式',encoding=' ') as fo:fo.read()....进行读取或写入操作...

其中的encoding参数可以省略。

数据文件的写入


实例:利用文件绘制轨迹

map函数:将第一个参数的功能作用于第二个参数中的每一个元素。
第一个参数是一个函数的名字,第二个参数是一个迭代类型。
对一个列表或一个集合中的每一个元素都执行一次第一个参数所对应的函数。

def format_name(s):return s[0].upper()+s[1:].lower() #首字母大写,后续字母小写
#map函数返回的是一个map对象,需要list(map(fun,itor))来将映射之后的map对象转换成列表
print(list(map(format_name, ['adam', 'LISA', 'barT'])))
from turtle import*
title('自动轨迹绘制')         #设置标题
setup(800,600,0,0)
pencolor('red')
pensize(5)
#数据读取
datals=[]
#注意txt文件最后一行结尾不要敲回车,自带有一个\n,敲回车的话就有两个\n了
f=open('C:\\Users\\这里是马赛克\\Desktop\\轨迹.txt')
# print(f.readlines())              #返回一列表
for line in f:                                                          #字符串经split转列表line=line.replace("\n","")      #去掉换行符datals.append(list(map(eval,line.split(','))))
f.close()
#自动绘制
for i in range(len(datals)):pencolor(datals[i][3],datals[i][4],datals[i][5])    #R,G,B值fd(datals[i][0])                                 #前进距离if datals[i][1]:                                   #判断左转还是右转,值为1代表右转。right(datals[i][2])                               #转的角度           else:left(datals[i][2])
hideturtle()
done()


join方法

一维数据的表示

如果数据间有序,使用列表。
如果数据间无序,使用集合。也可以用for循环对集合进行遍历处理。

一维数据的写入处理

#join方法将序列中的元素(必须都是字符类型)以指定的字符连接生成一个新的字符串。
seq = ("r", "u", "n", "5", "o", "b")       #元组类型
print('-'.join(seq))
print(''.join(seq))
print('_'.join(seq))
print(' '.join(seq))

#join方法将序列中的元素(必须都是字符类型)以指定的字符连接生成一个新的字符串。
ls=['中国','美国','日本']         #列表类型
print(' '.join(ls))
# f=open(fname,'w')
# f.write(' '.join(ls))           #join方法生成了一个字符串
# f.close()


通过join 和split 方法,可以完成一维数据的的读入,写入处理。

二维数据的表示

'''
二维列表:本身是一个列表,列表中的每一个元素也是列表。
'''
import random
#生成5个1~100之间的数
lst=[random.randint(1,100)for i in range(5)]
print(lst)

jieba库

import jieba
jieba.lcut(string)          # 返回一个列表
jieba.add_word(string)      # 向分词词典增加新词string

wordcloud库

可以根据文本中词语出现的频率等参数绘制词云。
绘制词云的形状,尺寸和颜色都可以设定。
关于安装

from wordcloud import WordCloud
w=WordCloud()
w.generate(text)/w.fit_words(dict)
w.to_file(图片保存路径)
# (有时候会用到)
from wordcloud import WordCloud,STOPWORDS
# 设置停用词
sw=set(STOPWORDS)
for cnstopword in open('停用词文件'):sw.add(cnstopword.strip())
import requests
from lxml import etree
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
import jieba
# 获取指定文本
url='http://www.gov.cn/guowuyuan/zfgzbg.htm'         # 这里爬的是 政府工作报告
header = {'Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36','Access-Control-Allow-Credentials': 'true','Connection': 'keep-alive','Accept-Language': 'zh-CN,zh;q=0.9',# 'Referer':'https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=%E5%B0%8F%E7%A7%98'
}
r=requests.get(url,headers=header)
r.encoding='utf-8'
r_text=r.text
tree=etree.HTML(r_text)
essay=tree.xpath('//div[@id="conlun2_box_text"]//text()')
article=' '.join(essay)#进行分词
dele = {'。','!','?','“','”','(',')',' ','》','《',',','\r','\n','\r\n','\t'}
words = jieba.lcut(article)
#词频统计
articleDict = {}
articleSet = set(words)-dele            # 去除标点符号for w in articleSet:if len(w)>1:                        # 去除一个字的articleDict[w] = words.count(w)mask_=np.array(Image.open('C:\\Users\\马赛克马赛克\\Desktop\\光头强.jpg'))
w=WordCloud(background_color='white',\
font_path='C:\Windows\Fonts\simkai.ttf'\
,mask=mask_\
# ,contour_width=1,contour_color='blue'\)
w.fit_words(articleDict)            #根据词频来生成的#  根据图片的颜色对词云进行上色 (选用)
# imcolor=ImageColorGenerator(mask_)
# w.recolor(color_func=imcolor)plt.imshow(w)
plt.axis('off')
plt.show()

选用的mask 遮罩图片 背景色一定要纯白 (#FFFFFF),可以先扣图,然后加一个纯白的图层。



python7(文件,join方法,jieba,wordcloud词云绘制)相关推荐

  1. python中文分词器-jieba分词器详解及wordcloud词云生成

    jieba分词 jieba分词支持三种分词模式: 精确模式, 试图将句子最精确地切开,适合文本分析 全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义 搜索引擎模式,在精确模 ...

  2. jieba分词库、WordCloud词云库、requests库

    python学习 jieba--分词库 安装jieba库 支持三种分词模式 WordCloud--生成词云库 安装WordCloud库 使用 requests 库 安装 requests 的 get ...

  3. Win10安装wordcloud(词云)的方法

    一.在安装wordcloud(词云)之前一定要记得先安装pillow和numpy windous. ①按windows+R ,输入cmd ②输入 pip install pillow ③输入 pip ...

  4. wordcloud库的常规方法及词云绘制实例

    对一文本wordclound.txt进行词云绘制 import jieba import wordcloud f = open("wordcloudeg.txt","r& ...

  5. Python 数据可视化:WordCloud 词云的构建

    WordCloud 官方文档:https://amueller.github.io/word_cloud/index.html WordCloud GitHub 地址:https://github.c ...

  6. 机器学习之---文本分析(jieba分词和词云绘制)

    一.定义: 文本挖掘:从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程. 二.语料库(Corpus) 语料库是我们要分析的所有文档的集合. import os import os ...

  7. 用WordCloud词云+LDA主题模型,带你读一读《芳华》(python实现)

    电影<芳华>在春节重映了一波,加上之前的热映,最终取得了14亿票房的好成绩.严歌苓的原著也因此被更多的人细细品读.用文本分析的一些技术肢解小说向来是自然语言处理领域的一大噱头,这次当然也不 ...

  8. wordcloud 词云制作

    文章目录 介绍 安装 导入 基本步骤 主要方法及参数 类`wordcloud.WordCloud(**kwargs)` 参数 方法 属性 函数`wordcloud.random_color_func( ...

  9. python数据挖掘学习笔记】十三.WordCloud词云配置过程及词频分析

    #2018-03-28 09:59:40 March Wednesday the 13 week, the 087 day SZ SSMR 11,12因为涉及到数据库被我暂时放弃了 python数据挖 ...

最新文章

  1. unix环境高级编程-线程(2)
  2. python什么时候进入中国-python什么时候发明的
  3. 用NFS挂载root出现:NFS: failed to create MNT RPC client, status=-101(-110)
  4. 【脚本整理】docker-compose 部署prometheus + grafana
  5. 内联函数的声明和定义
  6. MySQL · 引擎特性 · InnoDB 事务子系统介绍
  7. when is Lessifier triggered to be loaded
  8. 【Python】pymysql模块处理Mysql数据库
  9. 看程序员如何给女朋友解释什么是锟斤拷?
  10. Spring Cloud与微服务学习总结(5)——认证鉴权与API权限控制在微服务架构中的设计与实现(三)
  11. PHP(ThinkPHP5.0) + PHPMailer 进行邮箱发送验证码
  12. 【MyBatis笔记】06-Mapper动态代理
  13. gitee markdown 笔记_Gitee+PicGo+Pandoc+Typora组建markdown编辑器
  14. 《自然》:这家中国AI公司的计划,超越了所有对手
  15. 在虚拟机中安装Windows XP
  16. 2022年上半年中国企业员工主动离职率大幅下降至6%;三成以上中国企业大部分高管岗位没有后备人选 | 美通社头条...
  17. 基于FastICA的声源分离实例(matlab代码)
  18. 一、CCD原理及实现方法
  19. 亲爱的老狼-定位position的应用
  20. 在线学习如何听课和记笔记

热门文章

  1. 【HTML操作指南】
  2. python魔法方法学不懂_深入学习Python之魔法方法
  3. Python爬取豆瓣Top250电影排名
  4. JavaScript使用setInterval()实现真实进度条
  5. 【浏览器】Ajax 是什么? Ajax的基本流程?
  6. 八步成功组织项目启动会议
  7. windows server2019 AD域环境下用gpo统一员工桌面壁纸不久变黑屏
  8. 华硕R414U详细拆机装内存条步骤!
  9. 【K8S运维知识汇总】第4天7: dashboard小彩蛋–heapster
  10. 没有什么能够阻挡,我对自由的向往--致程序员