文件和数据格式化 实例11:自动轨迹绘制

字符串格式化   :”{}{}{}“.format()
将字符串按照一定规格和式样进行规范
数据格式化:将一组数据按照一定规格和式样进行规范
包括对一组数据的表示、存储和运算等

文件的类型

文本文件:由单一特定编码组成的文件,如UTF-8编码,如.txt文件、.py文件
二进制文件:直接由比特0和1组成,没有统一字符编码,如.png文件、.avi文件等

文件的打开和关闭

文件处理的步骤:打开-操作-关闭

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


#二进制形式打开文件
bf=open("f.txt","rb")
print(bf.readline())
bf.close()

我在.py文件所在目录下创建了一个文件,但是打不开,先放在这,以后在看看,为了后续例子好讲,这里给出文本文档的内容:中国是个伟大的国家!

以二进制形式打开没什么差错

但是以文本形式确不可行 

tf=open("f.txt","rt",encoding="utf-8")
print(tf.readline())
中国是个伟大的国家!

 感谢神奇的互联网

可以找到同款问题


读文件函数a.read(size)
a.readline(size)
a.readlines(hint)
写文件函数a.write(s)
a.writelines(lines)
a.seek(offset)

文件内容的读取

操作方法描述
<f>.read(size=-1)读入全部内容,如果给出参数,读入前size长度
<f>.readline(size=-1)读入一行内容,如果给出参数,读入该行前size长度
<f>.readlines(hint=-1)读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行

 没想到呀为何是这样哈哈啊哈

看来每次都得重新打开文件


 数据的文件写入

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

 我发现名为"f.txt"的文本文件被改写了


实例11:自动轨迹绘制

需求:根据脚本来绘制图形

不是写代码而是写数据绘制轨迹

数据脚本是自动化最重要的第一步

基本思路

步骤一:定义数据文件格式(接口) 

步骤二:编写程序,根据文件接口解析参数绘制图形

步骤三:编制数据文件

import turtle as t
t.title("自动轨迹绘制") #绘制窗口的标题栏的信息
t.setup(800,600,0,0) #设置绘制窗口的大小
t.pencolor("red") #设置初始绘制的画笔颜色
t.pensize(5) #绘制画笔的粗细
#数据读取
datals=[] 
f=open("data.txt",encoding="utf-8")
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])

 我们既然要打开文件

那么必然得创建文件

#数据接口定义
300,0,144,1,0,0    #300是行进距离,0和1是转向判断(0左转,1右转),144表示转向角度,后三个参数是RGB三个通道颜色(0-1之间浮点数)
300,0,144,0,1,0
300,0,144,0,0,1
300,0,144,1,1,0
300,0,108,0,1,1
184,0,72,1,0,1
184,0,72,0,0,0
184,0,72,0,0,0
184,0,72,0,0,0
184,1,72,1,0,1
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,720,0,0,0

 

很神奇感觉学了很久

还是觉得新奇

python值得!!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据的小数据孩儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值