Life is short,Use Python!-----Python七杀!-----Python文件和数据格式化

打开,关闭,打开,关闭,打开。。。说好的操作呢


- 文件

  • 定义和类型:文件是数据的抽象和集合,分为文本文件、二进制文件。
文件的打开

打开模式
<变量名> = open(<文件名>,<打开模式>)
只读模式
'r'
缺省默认值
若文件不存在,返回FileNotFoundError
覆盖写模式
'w'
文件不存在则创建,存在则完全覆盖
创建写模式
'x'
文件不存在则创建,存在则返回FileExistsError
追加写模式
'a'
文件不存在则创建,存在则在文件最后追加内容
二进制文件模式
'b'
与r/w/x/a组合形成打开模式
文本文件模式
't'
与r/w/x/a组合形成打开模式
同时读写模式
'+'
与r/w/x/a组合形成打开模式
在原功能基础上增加同时读写功能
 #Example#
  >>>f = open("f.txt") 		#文本形式、只读模式(缺省默认形式)
  >>>f = open("f.txt","a+") 	#文本形式、追加写模式+读文件
  >>>f = open("f.txt","wt") 	#文本形式、覆盖写模式
  >>>f = open("f.txt","wb")	#二进制形式、覆盖写模式
文件处理
内容读取
<变量名>.read(size)
读入全部内容
参数表示读入 该文件 前size长度
<变量名>.readline(size)
读入一行内容
参数表示读入 该行 前size长度
<变量名>.readlines(hint)
读入文件所有行,以每行为元素形成列表
参数表示读入 该文件 前hint行
数据写入
<变量名>.write(s)
向文件写入一个字符串或字节流
<变量名>.writelines(lines)
将一个元素全为字符串的列表写入文件
<变量名>.seek(offset)
改变当前文件操作指针的位置
offset:0-文件开头;1-当前位置;2-文件结尾
#花式读法
fname = input()
fo = open(fname,"r")
#以上为公用部分

>>> txt = fo.read()			#你可以这么读

>>> txt = fo.read(2)
    while txt != ""
	 txt = fo.read(2)		#也可以这么读

>>> for line in fo.readlines():		#可以分行读

>>> for line in fo:			#甚至可以这样分行读

#以下为公用部分
fo.close()
#把下面那个注释恢复,看看会发生什么
fname = input()
fo = open(fname,"w+")
ls=["J","R","K"]
fo.writelines(ls)
#fo.seek(0)
for line in fo:
	print(line)
fo.close()

自动轨迹绘制

#感受文件的魅力
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])
    t.fd(datals[i][0])
    if datals[i][1]:
        t.rt(datals[i][2])
    else:
        t.lt(datals[i][2])

#data.txt数据格式:行进距离(px),转向判断(0左1右),转向角度(°),RGB三通道值(0~1浮点数)
#共4项6值,逗号隔开

- 一维数据格式化处理

  • 表示形式:列表类型(有序)& 集合类型(无序)
  • 存储分隔:空格、逗号、特殊符号
  • 读取和写入
>>> ls = <变量名>.split("<分隔字符>")		#读出

>>> <变量名>.write("<分隔字符>".join(ls))		#写入

- 二维数据格式化处理

  • 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 = [[],[],[]]		#二维列表
fo = open(fname,"w")

>>> for item in ls:
	f.write(",".join(item) + '\n')		#普通写法

>>> for row in ls:
	for column in row:
		print(ls[row][column])		#二层循环写法
fo.close()

- wordcloud库

  • 优秀的第三方词云库
w = worldcloud.Worldcloud()  	#根本方法
#以WorldCloud对象为基础,配置参数、加载文本、输出文件

w.generate(txt) 	#向WorldCloud对象w中加载文本txt
w.to_file(filename) 	#将词云输出为图像文件(.png或.jpg)格式

############################################################

#example
import wordcloud
c = wordcloud.WordCloud()
c.generate("txt")
c.to_file("filename.png")

############################################################
worldcloud.Worldcloud<参数>
参数名
意义
默认值
width
指定词云对象生成的 图片宽度
400px
height
指定词云对象生成的 图片高度
200px
min_font_size
指定词云中字体的 最小字号
4号
max_font_size
指定词云中字体的 最大字号
根据高度
自动调节
font_step
指定词云中字体字号的步进间隔
1
font_path
指定字体文件的路径
None
max_words
指定词云显示的 最大单词量
200
stop_words
指定词云的排除词集合,即不显示的单词集合
mask
指定词云形状,需要从scipy.misc引用imread()函数
详见本章
最后实例
background_color
指定词云图片的背景颜色
黑色

政府工作报告词云

import jieba
import wordcloud
from scipy.misc import imread		# mask引用
#################################################################
mask = imread("chinamap.jpg")
excludes = { }
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(\
    width = 1000, height = 700,\
    background_color = "white",
    font_path = "msyh.ttc", mask = mask
    )
w.generate(txt)
w.to_file("grwordcloudm.png")

# 新时代中国特色社会主义.txt  可换为  任意文本
# "grwordcloudm.png  可为  任意名称
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值