python中嵌套的for循环更多

2024-03-29 10:07:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想打开两个文件。第一个(masters)看起来像:

ABC0001 \t rest \t of \t line
ABC0002 \t rest \t of \t line
ABC0003 \t rest \t of \t line
...

所有“\t”都是文件中的实际选项卡,每个项目编号后面都有其他信息。在

下一个文件(allp)只有项目编号,但它们是展开的:

^{pr2}$

目前我的代码:

masters = open("masters.txt","r")
allp = open("allp.txt","r")

for line in masters:
  tabloc = line.find("\t")
  product = line[:tabloc]
  info = line[tabloc:]
  for line_2 in allp:
    if product in line_2:
      print 1
    else:
      print 0

我的输出都是0。我在这里耍了一把,试着把“产品”重置为abcxxx。如果我在嵌套循环之前打印出产品,这是正确的,但是如果我在嵌套循环中打印它,那么它会打印第一个产品多少次,然后每隔一个产品都是abcxxx。在

我确信我的逻辑可以简化,但这不是必要的,我真的不知道该怎么做,因为我对python还是个新手。在

我需要的是从“masters”列表中获取主产品,并在“allp”列表中找到它的所有子产品。我需要打印每个子产品的信息从它的主产品。在


Tags: 文件ofintxtrest信息for产品
1条回答
网友
1楼 · 发布于 2024-03-29 10:07:37

你会想要

allp = open("allp.txt","r").readlines()

既然你这么做了

^{pr2}$

在循环中,第一次之后的所有后续迭代都将为空。在

编辑
正如mgilson所指出的,在每次迭代结束时使用allp.seek(0)也是一种很好的方法,特别是对于大文件。在

相关问题 更多 >