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 中的代码形容。
总结:其实,咱们在学习的过程中,一些简略的知识点,很可能就是一个我的项目中的灵魂,当能学以致用的时候,就感觉所学之贵重。
欢送一起学习交换,集体 VX:MrLinShu