I like the idea of using a dictionary as a solution to the problem. The reason you are not seeing the nested loop run twice is because of the following:
fd = file("C:\\defragreport.txt") fd.readlines() ['11/29/2005\n', '\n', '10:32:32 PM\n', '\n', 'Drive C: Defrag completed successfully\n', '\n'] fd.readlines() []
When you call "readlines()" on the open file, it reads the contents of the complete file. Calling it again returns an empty list. You would have to open/read/close the file in each pass. Thus, the dictionary solution saves you from doing this. Mike
-----Original Message----- From: pythondotnet-bounces@python.org [mailto:pythondotnet- bounces@python.org] On Behalf Of Thane Sent: Wednesday, November 30, 2005 2:51 PM To: 'W G'; pythondotnet@python.org Subject: Re: [Python.NET] Nested Loops
Read in the first file and create a dictionary (hash) of each line. Read in the second file and for each line see if the dictionary contains the item. This solution minimizes your I/O.
Python 2.4b1 (#57, Oct 15 2004, 15:23:38) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
refsymbol = [1,2,3,4] refdict = dict() for sym in refsymbol: ... refdict[sym] = sym ... refdict {'a': 'a', 'c': 'c', 'b': 'b', 'd': 'd'} showme = ['d','e','f'] for s in showme: ... if refdict.has_key(s): ... print s ... d
-----Original Message----- From: pythondotnet-bounces@python.org [mailto:pythondotnet- bounces@python.org] On Behalf Of W G Sent: Tuesday, November 29, 2005 2:53 PM To: pythondotnet@python.org Subject: [Python.NET] Nested Loops
Hello,
The follow code willl read lines of two text files. It supposed to take the first line of the first text file and compare it to all the lines of the second text file, then go to the next line of the first text file and do the same and so on.
The problem is that once the inner loop is finished, it never goes in that loop again. Any suggestions?
Thank you, Wes
The Code:
for refSymbol in symbols.readlines(): for lookupSymbol in myfile.readlines(): showme = lookupSymbol.split('\t') if showme[3] == refSymbol.strip(): priceNew.write(refSymbol.strip()+" "+showme[10])
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet
participants (1)
-
michael_sweeneyļ¼ agilent.com