为了账号安全,请及时绑定邮箱和手机立即绑定

中间第二个for循环不执行请问是什么情况呢?

中间第二个for循环不执行请问是什么情况呢?

烙印99 2022-08-04 19:15:02
with open(r'C:\Users\Administrator\Desktop\Q2_2.txt', 'r') as f2:dict_line = {}for line1 in f2.readlines():line1 = line1.rstrip()count_line = 0if line1 not in dict_line.keys():for line2 in f2.readlines():line2 = line2.rstrip()if line1 == line2:count_line += 1dict_line[line1] = count_lineprint(dict_line)with open(r'C:\Users\Administrator\Desktop\Q2_3.txt', 'w') as f3:f3.write(str(dict_line))f3.close()f2.close()
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

read类函数中有指针,当使用一次函数获取内容时指针会跳到下一行,最后一行输入后在使用read类函数就会读取不出内容

使用readlines后,再去使用它的指针会跳到最后面就读出出来了

可以用seek(指针位置)更改指针位置

在第二个for循环前面加个seek(0)


查看完整回答
反对 回复 2022-08-08
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

readlines()方法执行后,寻址位置标记到了文本的结束位置。
再次执行(也就是你的第2个for),从该位置往后读取,已经没有内容了,自然不会执行了。
如果一定要这样读取。在for line2 in f2.readlines():前面,添加一句
f2.seek(0)
也就是把寻址位置重新设置到文件开头。

查看完整回答
反对 回复 2022-08-08
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信