Python_note7 文件和数据格式化+wordcloud库

文件使用
文件
  • 文本文件 - - -二进制文件
    本质上多有的文件都是二进制形式存储,形式上文件采用两种方式展示
  • 文本文件由单一特定编码组成的文件,如UTF-8编码,被看成存储着的长字符串(.txt,.py) - - - - rt打开
  • 二进制文件由比特0和1组成,没有统一字符编码.png,.avi) - - - - rb打开
#文本形式打开文件
tf = open("f.txt","rt")#rt即为默认
print(tf.readline())
tf.close()
#二进制形式打开文件
tf = open("f.txt","rb")
print(tf.readline())
tf.close()
  • 文件打开关闭
    文件存储状态 - - - open() - - - 文件占用状态 - - - close() - - - 文件存储状态
    绝对路径 "D:/doc/f.txt","D:\\doc\\f.txt";相对路径"./doc/f.txt","f.txt"
  • 打开模式
    'r'只读,默认值,不存在返回FileNotFoundError;'w'覆盖写,不存在则创建,存在则覆盖;'x'创建写,不存在则创建,存在FileExistsError;'a'追加写,不存在则创建,存在则追加;'b'二进制;'t'文本模式,默认;’+'与rwxa一起,在原功能基础上增加同时读写能力
    f = open("f.txt","a+")文本形式追加写模式+读文件;wb二进制覆盖写
文件内容的读取

<f>.read(size=-1)读入全部内容,若有参数,度入前size长度
<f>.readline(size=-1)读入一行,若有参数,读入该行前size长度
<f>.readlines(hint=-1)读入文件所有行,每行为元素形成列表,给参数则读入前hint行
遍历全文本:(1).read读大文件会有缺陷(2)txt = f.read(x);while txt != "":txt=f.read(x)
逐行遍历:(1)for line in f.readlines():print(line)(2)for line in <文件句柄>:print(line)

数据的文件写入

<f>.write(s)向文件写入一个字符串或字节流
<f>.writelines(lines)将一个元素全为字符串的列表写入文件
<f>.seek(offset)改变当前文件操作指针的位置,offset:0文件开头1当前位置2文件结尾

f=open("**.txt","w+")
ls = ["A","C","B"]
f.writelines(ls)#此时指正指向文件结尾
f.seek(0)#指向文件开头
for line in f:
	print(line)
f.close()
实例11 自动轨迹绘制

要求:不是写好代码如海龟,而是读入数据解析数据绘制图形
数据源 300,0,144,1,0,0 arg1行进距离,arg2转向0左转1右转,arg3转向角度,arg456rgb
map内嵌函数,将第一个参数的功能作用于第二个参数的每一个元素

#AutoTraceDraw.py
import turtle as t
t.title('auto trace draw')
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#data get
datals = []
f = open("data.txt")
for line in f:
    line = line.replace("\n","")
    datals.append(list(map(eval,line.split(","))))
f.close
#auto draw
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])
一维数据的格式化处理
  • 列表类型可以表达一维有序数据,for循环遍历数据,对每个数据进行处理
  • 集合类型{}表达一维无序数据,for遍历
  • 存储:使用一个或多个空格分隔进行存储(数据中无空格),不换行;逗号分隔;特殊符号分如$
  • 读入处理txt=open(fname).read();ls=txt.split("$");f.close
  • 写入处理
ls = ['中','美','日']
f = open(fname,'w')
f.write(' ',join(ls))
f.close
二维数据的格式化处理
  • 二维列表表示二维数据
  • CSV数据存储 Comma-Separated Values
    国际通用的一二维数据存储格式(.csv),每行一个一维数据逗号分隔无空行
  • 读入处理 csv读入
fo = open(fname)
ls = []
for line in fo:
	line = line.replace("\n","")
	ls.append(line.split(","))
fo.close()
  • 写入csv
ls = [[],[],[]]#二维列表
f = open(fname,'w')
for item in ls:
	f.write(',',join(item)+'\n')
f.close()
  • 逐一处理
ls = [[],[],[]]
for row in ls:
	for column in row:
		print(ls[row][column])
模块6 wordcloud库的使用
  • wordcloud库把词云当作一个WordCloud对象;worldcloud.WordCloud()代表一个文本对应的词云
    w = wordcloud.WordCloud()
    w.generate("py an www")w.generate(txt)向WordCloud对象w中加载文本txt
    w.to_file("outfile.png")将词云输出为图像文件
    步骤分隔,以空格分隔单词;统计,单词出现次数并过滤短词;字体,根据统计配置字号;布局,颜色环境尺寸
    w = wordcloud.WordCloud(<参数>)图片宽高
    w = wordcloud.WordCloud(width=600);w = wordcloud.WordCloud(height=400)
    w = wordcloud.WordCloud(min_font_size=10)词云字体最小字号,默认4号
    w = wordcloud.WordCloud(max_font_size=20)词云字体最大字号,默认根据高度调节
    w = wordcloud.WordCloud(font_step=2)词云字体字号步进间隔,默认1
    w = wordcloud.WordCloud(font_path="msyh.ttc")词云字体文件路径微软雅黑msyh,默认None
    w = wordcloud.WordCloud(max_words=20)最大单词数默认200
    w = wordcloud.WordCloud(stop_words={"python"})不显示单词列表
    指定词云形状,默认长方形,引用imread()函数,mask,图片导入from scipy.misc import imread
from scipy.misc import imread
mk=imread("pic.png")
w=wordcloud.WordCloud(mask=mk)

w = wordcloud.WordCloud(background_color="write")背景色默认黑

import wordcloud
txt = "life is short, you need python"
w = worldcloud.WorldCloud(background_color="white")
w.generate(txt)
w.to_file("pywc.png")
实例12 政府工作报告词云
#GovRptwordcloud.py
import jieba
import wordcloud
f = open("newtimes.txt","r",encoding="utf-8")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w = wordcloud.Word.Cloud(font_path="msyh.ttc",width=1000,height=700,background_color="white",max_words=15)
w.generate(txt)
w.to_file("newtimes.png")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值