problem using differ

R

Russell

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)
 
G

Gary Richardson

Russell said:
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)
d=difflib.Differ()
for k in range(4):
dif = d.compare(a[k], b[k])
for p in dif:
print p,
print
 
P

Peter Otten

Russell said:
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
 
R

Russell

Gary and Peter

I appreciate your response. As you both point out in your replies I failed
to qualify my use of 'Differ()' by prefixing it with difflib (as well typing
the case properly). Once I made this correction I was able to continue.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,173
Messages
2,570,938
Members
47,474
Latest member
VivianStuk

Latest Threads

Top