problem using differ

Peter Otten __peter__ at web.de
Wed Nov 26 16:48:00 EST 2003


Russell wrote:

> I'm trying to automate the comparison of some source code but I'm having
> trouble using the differ object.  I'm new to Python so I'm probably doing
> something wrong.  I've created a small program (included below) that
> demonstrates my problem.  For some reason, Python doesn't recognize
> differ.
> I keep getting this error: NameError: name 'differ' is not defined.  What
> am I doing wrong?
> 
> Test Code follows:
> import difflib
> 
> a=[]
> a.append('1. Beautiful is better than ugly.')
> a.append('2. Explicit is better than implicit.')
> a.append('3. Simple is better than complex.')
> a.append('4. Complex is better than complicated.')
> 
> b=[]
> b.append('1. Beautiful is better than ugly.')
> b.append('3.   Simple is better than complex.')
> b.append('4. Complicated is better than complex.')
> b.append('5. Flat is better than nested.')
> 
> d=differ()
> d.compare(a,b)

You have to tell Python where to find Differ. 
Python is case sensitive: Differ != differ.
The compare() method returns a generator which you are discarding, making
the last statement useless.

Assuming you want to print the result, you could write:

d = difflib.Differ() 
for line in d.compare(a, b):
    print line

Peter




More information about the Python-list mailing list