Python读写txt文本(示例说明)
txt读写相对来说比较简单写,以下通过一个简单的示例来感受下读写的效果。
1、实现的需求
①写入:
给文件名为“1.txt”的文本中,写入(800,600)-(2048,2048)之间的总计1809801行数据,数据取值必须两两组合,遍历所有的值。比如(800,600),(800,601)…(800,2048)…(801,600)…(801,2048)等等。效果图如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
②读取:
每次读取一行数据,并把该行中的数据分割后,单独打印出来。如下:
2、实现过程
①实现第一个需求,即1809801行数据的写入,代码如下:
import re
m = []
f = open(".\1.txt", "w")
for i in range(800,2048): # i的值为800-2048
for j in range(600,2048): # j的值为600-2048
p = i,j # 循环取的i,j值给p,例如循环第一遍时p=(800,600)
m.append(p) # 把每次得到的p的值存入列表,并且在都在列表末尾追加,这样就会把所有取到的值存入了列表m
"""
上边的代码执行完后,m = [(800,600),(800,601),(800,602)......(2048,2048)]
"""
for n in range(len(m)):
q = (str(m[n])+'\n') # 把得到的m列表转换成字符串,此时q如果写入txt时,就是把m列表包括“()”也会写进去
w = q.split("(")[1] # 我们要把q中的字符串“()”去掉,先去掉“(”
r = w.split(")")[0] # 再去掉“)”
f.write(r+'\n') # 此时换行写入txt时就是需求中的效果了
f.close() # 关闭文件
② 实现第二个需求,即读取这1809801行数据,并把该行中的数据分割后,单独打印,如下:
i=0
num = 1809801
while(1):
if i < num:
with open('./1.txt', 'r') as data_file:
lines = data_file.readlines() # 获取所有行
data1 = int(lines[i].split(",")[0]) # 把第i行的“,”左边的数据给data1,如第一行中800,600中的800给data1
data2 = int(lines[i].split(",")[1]) # 把第i行的“,”左边的数据给data2,如第一行中800,600中的600给data2
print(data1)
print(data2)
i+=1 # 循环打印,就得到需求中的效果了
3、项目中的实例
以上需求,可以对应一个项目中的实际情况,比如让给某个设备设置分辨率,主要限制如下:
1、分辨率宽的取值为:800-2048
2、分辨率高的取值为:600-2048
3、也就是说,分辨率要从(800@600)取值到(2048@2048)
以上3点刚好对应了需求1中的描述,我们肯定是把分辨率的这些值存入到配置中,如txt中。这样后边给设置发指令的时候,只需要从配置中读取。
当然也可以在脚本中,直接把数据写入一个列表中,然后读取。经过测试,这1809801个数据写去列表是需要一段时间的,非常浪费时间和资源,效率特别低。
4、然后我们从配置中读取分辨率,发送给设备
5、必须是遍历所有的分辨率,及1809801个分辨率要发送给设备
以上2点,就刚好对应了需求2的描述。每次发送一个,不重复,要全部发完,刚好就是需求2中的代码描述。
总结:其实,我们在学习的过程中,一些简单的知识点,很可能就是一个项目中的灵魂,当能学以致用的时候,就感觉所学之宝贵。
- 点赞
- 收藏
- 关注作者
评论(0)