python寒假学习
文件和数据格式化
文件的使用
文件是数据的抽象和集合,所有文件都是以二进制形式储存
文本文件(存储着的长字符串):由单一特定的编码组成的文件,如UTF-8编码。适用于:.txt文件、.py文件
二进制文件:直接由比特0和1组成,没有统一字符编码;一般存在二进制0和1的组织结构,即文件格式;适用于如:.png文件、.avi文件等
#文本形式打开文件
tf=open("f.txt","rt")
print(tf.readline())
tf.close()
#二进制形式打开文件
bf=open("f.txt","rb")
print(bf.readline())
bf.close()
文件的打开和关闭
文件的打开
<变量名>=open(<文件名>,<打开模式>)
文件名:文件路径和名称(源文件同目录可省略路径)
打开模式:文本or二进制
r只读
w覆盖写模式
x创建写模式
a追加写模式
b二进制文件模式
t文本文件模式
+与r/w/x/a一同使用,在原功能基础上增加同时读写功能
读文件函数
文件的关闭
<变量名>.close()
变量名:文件句柄
文件内容读取
a.read(size)读入全部内容,如果给出参数,读入前size 长度
a.readline(size)读入一行内容,如果给出参数,读入该行前size长度
a.readlines(hint)读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
文件的全文本操作
遍历全文本:
一次读入,统一处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read()
#对全文本txt进行处理
fo.close()
按数量读入,逐步处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read(2)
while txt !="":
#对txt进行处理
txt=fo.read(2)
fo.close()
逐行遍历文件:
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo.readlines():
print(line)
fo.close()
分行读入,逐行处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo :
print(line)
fo.close()
写文件函数
a.write(s)向文件写入一个字符串或字节流
s对文本文件来讲是一个字符串
a.writelines(lines)将一个元素全为字符串的列表写入文件
a.seek(offset)改变当前文件操作指针的位置offset含义如下:
0-文件开头;1-当前位置;2-文件结尾
自动轨迹绘制
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.right(datals[i][2])
else:
t.left(datals[i][2])
一维数据的格式化和处理
维度:一组数据的组织形式
数据的操作周期 存储<->表示<->操作
一维数据的表示
如果数据间有序:使用列表类型
如果数据间无序:使用集合类型
一维数据的存储
空格分隔 (缺点:数据中不能存在空格)
逗号分隔 (缺点:数据中不能有英文逗号)
其他方式
二维数据的格式化和处理
二维列表类型表达二维数据
csv数据存储格式每行一个一维数据,采用逗号分隔,无空行;excel和一般编辑软件都可以读入或另存为csv文件
一般索引习惯:ls [ row ] [ column ]先行后列
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=[[1,2],[3,4],[5,6]]
for row in ls:
for column in row:
print(column)
wordcloud库
wordcloud.WordCloud()代表一个文本对应的词云
w=wordcloud.WordCloud()
配置参数对象->加载词云文本->输出词云文件
import wordcloud c=wordcloud.WordCloud() c.generate("wordcloud by Python") c.to_file("pywordcloud.png")
width 指定词云对象生成图片的宽度,默认400像素
w=wordcloud.WordCloud(width=600)
height指定词云对象生成图片的高度,默认200像素
w=wordcloud.WordCloud(height=400)