写点什么

Python 读写 txt 文本(示例说明)

作者:虫无涯
  • 2023-02-16
    陕西
  • 本文字数:1240 字

    阅读完需:约 4 分钟

txt 读写相对来说比较简单写,以下通过一个简单的示例来感受下读写的效果。

1、实现的需求

①写入:给文件名为“1.txt”的文本中,写入(800,600)-(2048,2048)之间的总计 1809801 行数据,数据取值必须两两组合,遍历所有的值。比如(800,600),(800,601)......(800,2048)...(801,600)...(801,2048)等等。效果图如下:


②读取:每次读取一行数据,并把该行中的数据分割后,单独打印出来。如下:

2、实现过程

①实现第一个需求,即 1809801 行数据的写入,代码如下:


import rem = []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=0num = 1809801while(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-20482、分辨率高的取值为:600-20483、也就是说,分辨率要从(800@600)取值到(2048@2048)


以上 3 点刚好对应了需求 1 中的描述,我们肯定是把分辨率的这些值存入到配置中,如 txt 中。这样后边给设置发指令的时候,只需要从配置中读取。当然也可以在脚本中,直接把数据写入一个列表中,然后读取。经过测试,这 1809801 个数据写去列表是需要一段时间的,非常浪费时间和资源,效率特别低。


4、然后我们从配置中读取分辨率,发送给设备 5、必须是遍历所有的分辨率,及 1809801 个分辨率要发送给设备


以上 2 点,就刚好对应了需求 2 的描述。每次发送一个,不重复,要全部发完,刚好就是需求 2 中的代码描述。


总结:其实,我们在学习的过程中,一些简单的知识点,很可能就是一个项目中的灵魂,当能学以致用的时候,就感觉所学之宝贵。欢迎一起学习交流

发布于: 刚刚阅读数: 6
用户头像

虫无涯

关注

专注测试领域各种技术研究、分享和交流~ 2019-12-11 加入

CSDN测试领域优质创作者 | CSDN博客专家 | 阿里云专家博主 | 华为云享专家 | 51CTO专家博主

评论

发布
暂无评论
Python读写txt文本(示例说明)_Python_虫无涯_InfoQ写作社区