Looping issues
Larry Bates
larry.bates at websafe.com
Thu Apr 5 14:27:52 EDT 2007
brochu121 at gmail.com wrote:
> What I am trying to do is compare two files to each other.
>
> If the 2nd file contains the same line the first file contains, I want
> to print it. I wrote up the following code:
>
>
>
> correct_settings = open("C:\Python25\Scripts\Output
> \correct_settings.txt","r")
> current_settings = open("C:\Python25\Scripts\Output\output.txt","r")
>
> for line in correct_settings:
> for val in current_settings:
> if val == line:
> print line + " found."
>
>
> correct_settings.close()
> current_settings.close()
>
>
> For some reason this only looks at the first line of the
> correct_settings.txt file. Any ideas as to how i can loop through each
> line of the correct_settings file instead of just looking at the first?
>
If the files aren't terribly large (not tested):
correct_lines=open(r"C:\Python25\Scripts\Output" \
"\correct_settings.txt", "r").readlines()
current_lines=open(r"C:\Python25\Scripts\Output\output.txt",
"r").readlines()
for line in current_settings:
if line in correct_lines:
print line + " found"
This does what you asked for but somehow I don't think it is
what you want. I would suggest that you take a look at difflib.
Somththing along the lines of:
import difflib
correct_lines=open(r"C:\Python25\Scripts\Output" \
"\correct_settings.txt", "r").readlines()
current_lines=open(r"C:\Python25\Scripts\Output\output.txt",
"r").readlines()
delta=difflib.unified_diff(correct_lines, current_lines)
diffs=''.join(delta)
print diffs
Will show you the lines that are different and some lines
around it for context.
-Larry
More information about the Python-list
mailing list