返回信息流f = open('/Users/Documents/weather1.txt') #打开文件
f1=open('/Users/Documents/result副本1.txt','r')
f2=open('/Users/Documents/result副本11.txt','w')
for i in f.readlines():
j = i.strip().split(',')
for i1 in f1.readlines():
j1 = i1.strip().split(',')
if j[0][5] == j1[0][0] and j[0][6] == j1[0][1] and j[0][8] == j1[0][2] and j[0][9] == j1[0][3]:
f2.write(j1[0]+','+j1[0][5:]+','+j1[1]+','+j1[2]+','+j1[3]+','+j[1]+','+j[2]+','+j[3]+','+j[5]+'\n')
刚开始学python,小白一枚,以上程序要实现的是寻找第一个文件中与第二个文件中匹配的项,然后合在一起,但是运行结果是f文件只读了第一行,没有继续循环。
求大神帮忙解答!万般感激!
这是一条镜像帖。来源:北邮人论坛 / python / #20730同步于 2018/1/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
【问题】python 两个for循环嵌套第一个for循环只读了第一行
zzzccc
2018/1/13镜像同步20 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 lt1103725556 的大作中提到: 】
: 没看懂,j[0][5]是什么意思?j不是一个字符串吗?
j是一行,j[0]是逗号隔开的第一个字符串,j[0][5]是第一个字符串的第6个字符
【 在 mxmaxi1234 的大作中提到: 】
: 因为你的文件指针f1在第一层循环就已经到文件结尾了,以后都不会再遍历f1所指向文件里的内容了
f1遍历完了以后,第一个大循环f只循环了一次,没有再跳到f继续循环
【 在 mxmaxi1234 的大作中提到: 】
: 你有打印过j的值吗?
打印过了,如下:
['0813-19', '19', '2219', '1', '1', ' 39 ', ' 29 ', '0', '0']
['0813-20', '20', '1732', '1', '1', ' 39 ', ' 29 ', '0', '0']
['0813-21', '21', '116', '1', '1', ' 39 ', ' 29 ', '0', '0']
这是代码一次运行的结果吗,如果是的话,第一层循环就读取了f文件的不止一行
【 在 zzzccc 的大作中提到: 】
: 打印过了,如下:
: ['0813-19', '19', '2219', '1', '1', ' 39 ', ' 29 ', '0', '0']
: ['0813-20', '20', '1732', '1', '1', ' 39 ', ' 29 ', '0', '0']
: ...................
【 在 mxmaxi1234 的大作中提到: 】
: 这是代码一次运行的结果吗,如果是的话,第一层循环就读取了f文件的不止一行
是一次运行的结果,确实是一次就都遍历了