开发者社区> 问答> 正文

python open 模块疑问:报错

两个LIST:LIST1、LIST2,我要实现的是在LIst2中找出所有包括LIST1中的关键词的行

Number= open(r'D:\Inbox\Number.txt','r')
Str = open(r'D:\Inbox\STR.txt','r')
for Number_a in Number:
    for Str_a in Str:
        if Number_a in Str_a:
            print Str_a

Number.txt内容为:


1
2
3
4
5
6

STR.txt内容:


1ABCDFG
2ABCDFG
3ABCDFG
4ABCDFG
5ABCDFG
6ABCDFG



运行后没有获得任何返回结果,我觉得原因可能是出在文件读取这边。请指教,刚开始接触:)





展开
收起
kun坤 2020-06-07 16:59:32 387 0
1 条回答
写回答
取消 提交回答
  • 应该注意两个地方

    1.for Number_a in Number, 这句里面Number_a包含了换行符

    2.for Str_a in Str, 这句执行后文件已经读取完,指针已经到了末尾,当下一个'for Number_a in Number' 循环到来的时候已经读取不到文件内容了,可以考虑将内容缓存起来

    ######回复 @balasihome : Number_a.replace('\n','') ~~!######回复 @cuckoocs : 去掉换行这个除了用正则,还有什么简便的方法吗######有换行符'Number_a in Str_a' 是 false
    2020-06-07 16:59:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载