ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python学习第六天学习汇总(python文件处理和词云的使用)

2019-07-19 20:51:14  阅读:248  来源: 互联网

标签:文件 文本 Python open python 词云 dict txt data


目录

Python学习第六天学习汇总(python文件处理和词云的使用)

一、文件的使用

文件处理分为三个步骤:

  • 文件的打开
  • 对打开的文件的操作
  • 关闭文件

原理流程图:

文件的操作

1.1 文件的打开

​ 使用open方法文件的打开

注:

​ 文件路径和名称:"D:/PYE/f.txt" 或 "D:\PYE\f.txt"

​ 源文件同目录可省路径:"./PYE/f.txt" 或 "f.txt"

1.2 文件的操作

文件的打开模式 描述
'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError
'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
'x' 创建写模式,文件不存在则创建,存在则返回FileExistsError
'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容
'b' 二进制文件模式
't' 文本文件模式,默认值
'+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
  • 文本形式、只读模式、默认值:f = open("f.txt")
  • 文本形式、只读模式、同默认值:f = open("f.txt", "rt")
  • 文本形式、覆盖写模式:f = open("f.txt", "w")
  • 文本形式、追加写模式+ 读文件:f = open("f.txt", "a+")
  • 文本形式、创建写模式:f = open("f.txt", "x")
  • 二进制形式、只读模式:f = open("f.txt", "b")
  • 二进制形式、覆盖写模式:f = open("f.txt"):f = open("f.txt", "wb")

1.3 文件的关闭

<变量名>.close() # 变量名为文件句柄

1.4 文件使用案例

# 文件的读取
f = open(r'F:\shpython11\pycharmwork\first_project\file\file.py','r')
data = f.read()
print(data)
f.close()

# 文件的编辑(覆盖写入,清空文件后写入)
fw = open(r'F:\shpython11\pycharmwork\first_project\file\file.py','w+')
fw.writelines(r'abc=new file')
f.close()

二、文本词频统计

​ 文本词频统计

  • 需求:一篇文章,出现了哪些词?哪些词出现得最多?
  • 该怎么做呢?

2.1 英文词频统计

程序代码:

# 1.首先先打开要统计的文件
f = open(r'F:\shpython11\pycharmwork\first_project\file\hamlet.txt','r',encoding='utf8')
# 把数据读取出来并且讲所有字符转为小写字母
data = f.read().lower()
# 用一个字符串接收所有 可能在文本中出现的 标点符号和其他字符
zf = r'!"#$%&()*+,-.'+"'"+r'/:;<=>?@[\\]^_‘{|}~'
# 去除文本中的多余的字符和标点符号
for i in data:
    if i in zf:
        data = data.replace(i," ")
# 对读取的内容进行切分成序列
data_split = data.split()
# 创建一个用来存储的字典
data_dict = {}
# 循环序列将重复的单词,计数后放入字典中
for i in data_split:
    if i not in data_dict:
        data_dict[i] = 1
    else:
        data_dict[i] += 1
# 将字典转为序列 进行计数排序
list_data = list(data_dict.items())

# 定义一个取值函数
def find_values(i):
    return i[1]
list_data.sort(key=find_values,reverse=True)
# 循环输出出现次数最多的是个单词
for i in list_data[:10]:
    print(f'{i[0]:^9} {i[1]:^5}')

运行结果:

the 953
and 856
to 657
of 581
i 519
you 498
a 471
my 447
in 388
hamlet 366

2.2 中文词频的使用

程序代码:

# # 中文词频统计
# 导入jieba库
import jieba
# 创建一个字典 用来
data_dict = {}
excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此","商议","如何","丞相","主公",
            "军士","左右","军马","引兵","次日","大喜"}
f = open(r'F:\shpython11\pycharmwork\first_project\file\threekingdoms.txt','r',encoding='utf8')
data = jieba.lcut(f.read())
for word in data:
    if len(word) == 1:
        continue
    if word in excludes:
        continue
    if '曰' in word:
        word = word.replace('曰',"")
    if word in data_dict:
        data_dict[word] += 1
    else:
        data_dict[word] = 1
def find_values(i):
    return i[1]
list_data = list(data_dict.items())
list_data.sort(key=find_values,reverse=True)
for i in list_data[:10]:
    print(f'{i[0]:^8} {i[1]:^5}')

运行结果:

孔明 1226
玄德 975
曹操 953
关公 510
张飞 358
吕布 300
赵云 278
刘备 277
云长 265
孙权 264

三、词云的使用

3.1 基本分析

基本思路

  • 步骤1:读取文件、分词整理
  • 步骤2:设置并输出词云
  • 步骤3:观察结果,优化迭代

3.2 具体实现

实例:

### 制作词云
# 导入wordcloud云库模块
import wordcloud
# 导入jieba模块库
import jieba

# 制作一个简单的词云
# 要制作成云库的文本内容
txt = "刘梦是这个世界最漂亮的女孩没有之一"
# 设置云库的背景颜色,字体,宽度,高度等
w = wordcloud.WordCloud(background_color="white",font_path=r"C:\Windows\Fonts\FZLTCXHJW.TTF",width=400,height=400)
# 将内容 放入云库中
w.generate(" ".join(jieba.lcut(txt)))
# 将制作好的云词导出来
w.to_file("test.png")

运行结果:

实例二:

# 导入wordcloud云库模块
import wordcloud
# 导入jieba库
import jieba
# # 词云进阶
# 打开文本文件
f = open(r'F:\shpython11\pycharmwork\first_project\file\threekingdoms.txt','r',encoding='utf8')
# 将文本内容放大 data 变量中 存储为等下要制作的云库内容
data = " ".join(jieba.lcut(f.read()))
# 设置云库的背景颜色,字体,宽度,高度等
w = wordcloud.WordCloud(background_color="white",font_path=r"C:\Windows\Fonts\FZLTCXHJW.TTF",width=1000,height=800)
w.generate(data)
w.to_file("test2.png")

运行结果:

今天的课后练习实例题

https://www.cnblogs.com/foreversun92/p/11215222.html

总结

    今天的上课学习的是python的文件的使用、文本词频统计分析和词云的制作。python文件的使用是一个比较重点的东西,因为以后编程是需要和文件之间进行交互的,而掌握这个知识点,对我们的之后做项目等都非常有帮助。而文本词频统计,就是对之前学习的东西和文件的一种结合使用的小案例,帮助我们更深的去了解和学习python的具体知识点。而词云就是一个比较好玩的东西,用来做一些自己感兴趣的东西也是非常不错的呢。![](https://www.icode9.com/i/l/?n=18&i=blog/1739639/201907/1739639-20190719204955504-1249726730.png)

标签:文件,文本,Python,open,python,词云,dict,txt,data
来源: https://www.cnblogs.com/foreversun92/p/11215656.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有