鱼C论坛

 找回密码
 立即注册
查看: 522|回复: 9

循环读取文件程序

[复制链接]
发表于 2018-11-5 12:48:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
result1=[]
with open('text1.txt','r') as f:
        for line in f:
                result1.append(list(line.strip('\n').split(',')))
#print (result2)
f.close()
result2=[]
with open('text2.txt','r') as f:
        for line in f:
                result2.append(list(line.strip('\n').split(',')))
#print(result1)
f.close()
for temp2 in result2:
        for temp1 in result1:
                if temp1[1:6] == temp2[1:6]:
                      temp1[0]=temp2[0]
                      #print(temp1)
                      f3=open('结果1.txt','a')
                      f3.write(str(temp1))
                      f3.close()
大家好,这是我写的一个程序,目的是把TXT文件内的数据进行处理,
4,5262,5267,5268,5269,14719,14722,14721,14724,14723,14725
0,5262,5265,5269,5270,14717,14726,14724,14728,14727,14729
2,5262,5271,5272,5266,14732,14731,14730,14715,14733,14734            
数据类型是这种,先以列表读取出来。两个文件的每行后面十个数据是相同的,只有第一个数字不同,但上下顺序是乱的,程序的目的是通过对比后5个数据相同,然后把TEXT1中第一列数据换成text2中第一列再输出,当TXT文件内数据为几百行左右程序运行起来没问题,TXT文件中有几万行数据时,运行起来就没有任何结果,程序也没有报错,结果1文件也没有输出,问下师兄师姐大师们,我的程序有问题吗?  是不是循环语句写的不对?  数据多了遍历文件运行不出来?我是在pythonshell3.5上运行,希望路过的大神解答一下   谢谢!!!!


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-5 20:09:44 | 显示全部楼层
help  QAQ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-5 20:13:22 | 显示全部楼层
你自己在几个位置加上打印看看,看运行到哪里,哪步没运行还是怎么,按你说的行数少不是能读的到吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-5 21:03:11 | 显示全部楼层
塔利班 发表于 2018-11-5 20:13
你自己在几个位置加上打印看看,看运行到哪里,哪步没运行还是怎么,按你说的行数少不是能读的到吗

我把result1打印的时候,程序就卡死了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-5 21:07:14 | 显示全部楼层
你不要打印全部,在result1添加完,
print('1OK')
不就表明1的元素添加完了么
你还可以print(len(result1))
全打印内容是比较蠢得。。
下面的类似
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-5 21:27:58 | 显示全部楼层
塔利班 发表于 2018-11-5 21:07
你不要打印全部,在result1添加完,
print('1OK')
不就表明1的元素添加完了么

确实好蠢  哈哈     运行到for循环里 ,就没反应了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-5 21:39:09 | 显示全部楼层
的确。2个列表都是几万行长,相乘可能超内存
你把文件在for开始打开不行么。结束了再close就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-5 21:44:21 | 显示全部楼层
塔利班 发表于 2018-11-5 21:39
的确。2个列表都是几万行长,相乘可能超内存
你把文件在for开始打开不行么。结束了再close就行

试验过,文件是存在了,就是里面没有数据,  我感觉我的程序不对,好像不能实现从text1中的一行数据拿进text2中进行对比, 一进入for循环就没有结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-5 21:46:36 | 显示全部楼层
要都是空,那就是你的if的坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-5 21:53:50 | 显示全部楼层
塔利班 发表于 2018-11-5 21:46
要都是空,那就是你的if的坑

我感觉也是,怎样写for遍历出的列表,一个拿出来和text2中数据进行对比后再第二个进行对比呢?

  我的这个程序是把两个text内数据都读取为列表形式,然后对比后5位数字相同,好像写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 13:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表