Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的更多嵌套for循环_Python_For Loop_Nested - Fatal编程技术网

python中的更多嵌套for循环

python中的更多嵌套for循环,python,for-loop,nested,Python,For Loop,Nested,我正试图打开两个文件。第一个(masters)看起来像: ABC0001 \t rest \t of \t line ABC0002 \t rest \t of \t line ABC0003 \t rest \t of \t line ... 所有“\t”都是文件中的实际选项卡,每个项目编号后都有其他信息 下一个文件(allp)只有项目编号,但它们已展开: ABC0001 ABC0001.25 ABC0001.56 ABC0001.35 ABC0002 ABC0002.43 ABC0002.

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

ABC0001 \t rest \t of \t line
ABC0002 \t rest \t of \t line
ABC0003 \t rest \t of \t line
...
所有“\t”都是文件中的实际选项卡,每个项目编号后都有其他信息

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

ABC0001
ABC0001.25
ABC0001.56
ABC0001.35
ABC0002
ABC0002.43
ABC0002.97
...
到目前为止,我的代码是:

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。我有点胡闹,试着将“产品”重置为ABCXXXX。如果我在嵌套循环之前打印出产品,这是正确的,但是如果我在嵌套循环中打印它,它会打印第一个产品,不管打印多少次,然后每隔一个都是abcxxx

我确信我的逻辑可以简化,但这并不是必须的,我也不知道该怎么做,因为我对python还是很陌生

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

您需要

allp = open("allp.txt","r").readlines()
既然你这么做了

for line_2 in allp:
在循环中,第一次迭代之后的所有后续迭代都将为空

编辑

正如mgilson指出的那样,在每次迭代结束时,
allp.seek(0)
也是一种很好的方法,尤其是对于大文件。

您需要什么输出?很抱歉。。。我很难准确地解析您希望从代码中看到的输出。你能不能编辑一下你的帖子,说得更具体一些?很抱歉。添加了我正在尝试做的事情。:-)这是什么意思“ABC0001\t rest\t of \t line”?主要产品是什么?没有问题。以前去过那里,非常令人沮丧:-)或者,您可以
allp.seek(0)
重置文件对象,以便再次对其进行迭代。如果你的文件很大的话,这可能会更好——不过如果它们的大小合理的话,这并不重要。