文件内容的读取
《f》.read(size = -1)
读入全部内容,如给出参数,读入前size长度
f=‘中国是个伟大的国家’
s = f.read(2)
读取,中国
《f》.readline(size = -1)
读入一行内容,如给出参数,读入该行前size长度
‘中国是个伟大的国家’
《f》.readlines(hint = -1)
读入文件所有行,以每行为元素形成列表
如给出参数,读入前hint行
【‘中国是个伟大的国家’】
文件的全文本操作
遍历全文本
1,
fname = input(‘请输入要打开的文件名称’)
fo = open(fname,‘r’)
txt = fo。read()
#对全文本进行txt处理
fo。close()
一次读取,统一处理
2,
fname = input(‘请输入要打开的文件名称’)
fo = open(fname,‘r’)
txt = fo。read(2)
while txt !=‘’:
txt = fo。read(2)
fo。close()
按数量读入,逐步处理
逐行遍历
1,
fname = input(‘请输入要打开的文件名称’)
fo = open(fname,‘r’)
for line in fo。readlines():
print(line)
fo。close()
一次读入,分行处理
2,
fname = input(‘请如数要打开的文件名称’)
fo = open(fname,‘r’)
for line in fo:
print(line)
fo。close()
分行读入,逐行处理
数据的文件写入
《f》.write(s)
向文件写入一个字符串或字节流
f.write(‘中国是一个伟大的国家!’)
.writelines(lines)
将一个元素全为字符串的列表写入文件
ls = [‘中国’,‘法国’,‘美国’]
f.writelines(ls)
中国法国美国
《f》.seek(offset)
改变当前文件操作指针的位置,offset的含义如下
0-文件开头,1-当前位置,2-文件结尾。
f.seek(0)
#回到文件开头
fo = open(‘output.txt’,‘w+’)
ls = [‘中国’,‘法国’,‘美国’]
fo.writelines(ls)
fo.seek(0)
#返回到文件开头
for line in fo:
print(line)
#写一个字符串列表
fo,close()
自动轨迹绘制
基本思路
1,定义数据文件格式(接口)
2.编写程序,根据文件接口解析参数绘制图形
date.txt
300,0,144,1,0,0
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,72,0,0,0
184,1,720,0,0,0
行进距离,
转向判断,0:左转,1:右转
转向角度,
最后三个,RGB通道颜色
0-1的浮点数
import turtle as t
#载入绘图模块
t.title(‘自动轨迹绘制’)
#设置标题
t.setup(800,600,0,0)
#设置窗口大小与位置
t.pencolor(‘red’)
#设置画笔颜色
t.pensize(5)
#设置画笔粗细
#数据读取
datals = []
#设置列表
f = open(‘date.txt’)
#打开文件,赋值为f
for line in f:
#遍历f给line,逐一处理每一行
line = line.replace(’\n’, ‘’)
#line 赋值为替换,换行替换为空值,去掉换行信息
datals.append(list(map(eval, line.split(’,’))))
#列表最后,line.split以,逗号分隔字符,用eval去引号
#map,将第一个函数的功能作用与第二个参数的每个元素
#就是说用转为数值的功能,作用于用逗号分隔的每一个元素
#然后作为列表,输出到datals最后
f.close()
#关闭文件
#自动绘制
for i in range(len(datals)):
#逐一遍历datals的长度值,i为遍历的第几行
t.pencolor(datals[i][3], datals[i][4], datals[i][5])
#获得当前datals函数的值找到函数的第3.4.5个值,附给画笔颜色作为rgb值
t.fd(datals[i][0])
#往前移动datals函数的第1个值
if datals[i][1]:
#如果函数第二个值不等于0
t.right(datals[i][2])
#向右转第3个值的角度
else:
t.left(datals[i][2])
#向左转第3个值的角度
replace
str.replace(old, new[, max])
参数
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
map
map(function, iterable, …)
function – 函数
iterable – 一个或多个序列
方法思维
自动化思维:数据和功能分离,数据驱动的自动运行
接口化设计:格式化设计接口,清晰明了
二位数据应用:应用维度组织数据,二位数据最常用
扩展接口设计,增加更多控制接口
扩展功能设计,增加弧形等更多功能
扩展应用需求,发展自动轨迹绘制到动画绘制