python对文件读操作的方法,Python中对文件的读取操作

  python对文件读操作的方法,Python中对文件的读取操作

  一、需求:

  有如下两个文档需要进行比较和处理。1.txt12312.txtABCD

  二、问题:

  首先想到的是,打开后只是#错误地写F1=open (rd: \ pytest \ 1.txt , r) F2=open (rd: \ pytest \ 2.txt , r) for x in F1。Read lines():对于F2中的y。

  输出只有1A1B1C1D。

  显然,第一层并没有循环完成。

  于是我测啊测,看啊看,终于明白了。readlines()是一次性作业,没有# output test f1=open(r d:\ pytest \ 1 . txt , r) F2=open (r d: \ pytest \ 2.txt , r )x1=f1 . readlines()for x in x1:x2=F2 . readlines()print( x2 is:{ } 。x2: print中y的format(x2))( X:{ } 。format(x.strip())) print(y:{} 。格式(y.strip()))

  输出x2为:[A\n , B\n , C\n , D] #很明显,只要求一次x:1y:ax:1y:bx:1y:CX:1y:dx2is:[]#。之后就不会再要求了。它变成了空的,外层停止了循环。

  第三,解决

  你可以在外层给它赋一个变量来存储。代码修改如下。最后2层循环正常输出。#可以将x1中的x写成1f1=open (rd: \ pytest \ 1.txt , r) f2=open (rd: \ pytest \ 2.txt , r )x1=f1 . readlines()x2=F2 . readlines()

  在查找方法的过程中发现,用open比直接用open更清晰,不需要显式的close(),所以可以修改代码#把2用open (rd: \ pytest \ 1.txt , r )写成f1,open (rd: \ pytest \ 2.txt , r )写成F2:F11=f1 . readlines()f22=F2 . readlines()for x in F11:for y in f22:print(x . strip()y . strip())

  测试环境是windows下的python3.6。

  历史提交的图片或压缩文件

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: