7.1文件的使用

1.1文本类型

文本文件:由单一特定编码组成的文件,如.txt

二进制文件:如.png,.avi

1.2文件的打开和关闭

打开-操作-关闭

<变量名> = open(<文件名和路径>,<打开模式>)

打开模式:'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError

'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖

'x' 创建写模式,文件不存在则创建,存在则FileExistsError

'a'追加写模式,文件不存在则创建,存在则在文件最后追加内容

'b'二进制文件模式

't'文本文件模式,默认值

'+' 与r/w/x/a一同使用,增加读写功能

<变量名>.close()

1.3文件内容的读取

<f>.read(size=) 读入全部内容,如果给出参数,读入前size长度

<f>.readline(size=) 读入一行内容,如果给出参数,读入该行前size长度s

<f>.readlines(hint=) 读入文件所有行,以每行为元素列表,如果给出参数,读入该行前hint行

1.4数据的文件写入

<f>.write(s) 文件写入一个字符串或字节流

<f>.writelines(lines) 将一个元素全为字符串的列表写入文件

<f>.seek(offset) 改变当前文件操作指针的位置,offset:0-文件开头,1-当前位置,2-文件结尾

7.2自动轨迹绘制实例

#AutoTraceDraw.py
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(","))))
f.close()
#自动绘制
for i in range(len(datals)):
t.pencolor(datals[i][3],datals[i][4],datals[i][5]) #RGB颜色
t.fd(datals[i][0])
if datals[i][1]:
t.right(datals[i][2])
else:
t.left(datals[i][2])

7.3一维数据的格式化和处理

数据组织的维度

操作周期:存储格式、表示数据类型、操作

一维数据的表示:有序-列表,for循环遍历;无序-集合,for循环遍历;

存储:空格分隔,不换行;逗号分隔,不换行;特殊符号

处理:

f.write(' '.join(ls))#把空格放置在每个元素之间

7.4二维数据的格式化和处理

二维数据的表示:二维列表;

CSV数据存储格式:

二维数据的存储

二维数据的处理:

ls = [[],[],[]]
f = open("1806.csv",'w')
for item in ls:
f.write(','.join(item)+"\n")
f.close()

7.5Wordcloud库

w = wordcloud.WordCloud()

w.generate(txt) 向WordCloud对象w中加载文本txt

w.to_file(filename)将词云输出为图像文件,.png或.jpg格式

width:默认400

height:默认200

min_font_size:指定词云中字体最小号,默认4号

max_font_size:。。。。。。。最大号,根据高度自动调节

eg: w = wordcloud.WordCloud(min_font_size=20)

font_step 指定词云中字体字号的步进间隔,默认为1

font_path :指定字体文件的路径,默认None

max_words :指定词云显示的最大单词量,默认200

stop_words:指定词云的排除词列表,即不显示的单词列表

mask:

from scipy.misc import imread
mk = imread("pic.png")
w = wordcloudWordCloud(mask=mk)

background_color:指定词云的背景颜色,默认为黑色

import wordcloud
txt = "life is short,you need python"
w = wordcloud.WordCloud(\
background_color = "white")
w.generate(txt)
w.to_file("pywcloud.png")
import jieba
import wordcloud
txt = "这个问题困扰了我一年。我一直不敢和他提。\
甚至有时候我会很难受,不行我就辞职吧。\
虽然工作不错、公司不错,但是这个吸二手烟是硬伤啊!\
看吧,这就是我原来的思维。因为不敢提这件事情,甚至想到用辞职去解决。\
进行了心灵强大的刻意练习之后,我在他一次开会抽烟的时候,发了微信,和善而坚定,告诉他不要在我面前吸烟了,电子烟可以。\
结果他爽快的答应了。之后再也没犯过。"
w = wordcloud.WordCloud(width = 1000,font_path="msyh.ttc",height = 700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pycloudcloud.png")

7.6“政府工作报告”词云实例

step1:读取文件、分词整理

step2:设置并输出词云

step3:观察结果,优化迭代

#CovRptWordCloudv1.py
import jieba
import wordcloud
f = open("关于实施乡村振兴战略的意见1.txt","r",encoding="utf-8")#gb2312
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,\
background_color="white",max_words = 15)
w.generate(txt)
w.to_file("grwordcloud.png")

Python第七章(北理国家精品课 嵩天等)的更多相关文章

  1. Python第八章(北理国家精品课 嵩天等)

    程序设计方法 8.1体育竞技分析实例 from random import random def printIntro(): print("这个程序模拟两个选手A和B的某种竞技比赛" ...

  2. Python第六章(北理国家精品课 嵩天等)

    一 1.集合类型定义及其操作: 集合用{}表示,元素用逗号分隔,无序,唯一 集合操作符: |:并 -:减 &:交 ^ :补 <= <:判断子集关系 >= >:判断包含关 ...

  3. Python第四章(北理国家精品课 嵩天等)

    一.程序的分支结构 二.身体质量指数BMI #CalBIv1.py height,weight = eval((input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))) ...

  4. Python第二章(北理国家精品课 嵩天等)

    一.深入理解Python语言 语法简洁 >13万第三方库 二.Python蟒蛇绘制 #PythonDraw.py import turtle turtle.setup(650,350,200,2 ...

  5. Python第五章(北理国家精品课 嵩天等)

    函数和代码复用 函数的定义和使用 def <函数名>(<参数(0个或多个)>): <函数体> return <返回值>可选参数放在不可选参数之后*b不定 ...

  6. Python第三章(北理国家精品课 嵩天等)

    一.数字类型及其操作 整数:pow(x,y),想算多大,就算多大:以0b或0B开头表示二进制:以0o或0O开头表示八进制:以0x或0X开头表示十六进制. 浮点数:取值范围-10^308至10^308, ...

  7. Python第一章(北理国家精品课 嵩天等)

    1.1程序设计基本方法 IPO 分析问题,划分边界,设计算法: 编写程序,调试测试,升级维护. 1.2Python开发环境配置 1.3实例1:温度转换 1.4Python程序语法元素分析 缩进,#添加 ...

  8. 简学Python第七章__class面向对象高级用法与反射

    Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群  群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...

  9. <automate the boring stuff with python>---第七章 正则实例&正则贪心&匹配电话号码和邮箱

    第七章先通过字符串查找电话号码,比较了是否使用正则表达式程序的差异,明显正则写法更为简洁.易扩展.模式:3 个数字,一个短横线,3个数字,一个短横线,再是4 个数字.例如:415-555-4242 i ...

随机推荐

  1. 在Vue项目中使用Element UI:按需引入和完整引入

    下面操作在main.js文件中进行 完整引入: import Element from 'element-ui'; //样式文件,需单独引入 import 'element-ui/lib/theme- ...

  2. OO-第二单元总结

    一.三次作业的设计策略 (1). 第五次作业 第五次作业由于较为简单,在强测及互测中均没有出现BUG,但是并没有做优化.本次的设计有些不合理,所以在后面的作业中也做了重构.本次的作业主要有三个类,主函 ...

  3. 【转载】Linux常用命令

    Linux常用命令大全(非常全!!!) 转载出处:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 系统信息 arch 显示机器的处理器架构( ...

  4. OO第二单元多线程电梯总结分析

    一.概述 这一部分的作业考察的关注点与上一次的作业有所不同,上一次的考察重点主要集中在输入输出的判定以及多态的考察上面,而这一次是让我们进行多线程程序的调度与开发.这次开发过程中最大的感受就是自己之前 ...

  5. leetcode 78,236,300

    ---恢复内容开始--- 2018.3.16目前已刷27题,打卡记录有意思的题目. leetcode78 subsets 思路1:DFS遍历子集,每遇到一个数就把该数加上原来的子集变成新的子集. cl ...

  6. xtratabcontrol控件的标签样式--文本的宽高

    Skin skin_ = TabSkins.GetSkin(DevExpress.LookAndFeel.UserLookAndFeel.Default.ActiveLookAndFeel); Ski ...

  7. 汇编语言实验1 & macOS下DOSBox的安装

    一.macOS下DOSBox的安装 1.在官网下载DOSBox-0.74.dmg 打开,此时默认z盘 一番折腾,终于搞定debug 然后为了不用每次都执行mount,遂更改配置文件自动挂在目录 再次打 ...

  8. 获取上一页面url

    console.log(window.location.host); #js获取当前域名 console.log(window.location.href); #js获取当前url console.l ...

  9. redis常用命令使用集

    redis集群:https://www.cnblogs.com/PatrickLiu/p/8435214.html Redis命令总结 1.基于内存的key-value数据库 2.基于c语言编写的,可 ...

  10. BATJ面试指南

    Java并发编程面试题汇总 线程 线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源).java.lang.Thre ...