[Tutor] what's wrong in my command?
Shurui Liu (Aaron Liu)
shurui91 at gmail.com
Wed Mar 31 22:33:42 CEST 2010
# geek_translator3.py
# Pickle
import pickle
# Open Dictionary
geekfile = open('geekdictionary3.txt', 'r+')
new_geeks = pickle.load(geekfile)
geekterms = new_geeks.keys()
geekterms.sort()
# start
choice = None
while choice != "0":
print \
"""
Geek Translator
0 - Quit
1 - Look Up a Geek Term
2 - Add a Geek Term
3 - Redefine a Geek Term
4 - Delete a Geek Term
5 - List of Terms
"""
choice = raw_input("Choice: ")
print
# exit
if choice == "0":
print "Good-bye."
# get a definition
elif choice == "1":
term = raw_input("What term do you want me to translate?: ")
if term in new_geeks:
definition = new_geeks[term]
print "\n", term, "means", definition
else:
print "\nSorry, I don't know", term
# add a term-definition pair
elif choice == "2":
term = raw_input("What term do you want me to add?: ")
if term not in new_geeks:
definition = raw_input("\nWhat's the definition?: ")
new_geeks[term] = definition
geekterms.append(term)
geekterms.sort()
print "\n", term, "has been added."
else:
print "\nThat term already exists! Try redefining it."
# redefine an existing term
elif choice == "3":
term = raw_input("What term do you want me to redefine?: ")
if term in new_geeks:
definition = raw_input("What's the new definition?: ")
new_geeks[term] = definition
print "\n", term, "has been redefined."
else:
print "\nThat term doesn't exist! Try adding it."
# delete a term-definition pair
elif choice == "4":
term = raw_input("What term do you want me to delete?: ")
if term in new_geeks:
del new_geeks[term]
geekterms.remove(term)
print "\nOkay, I deleted", term
else:
print "\nI can't do that!", term, "doesn't exist in the dictionary."
# list of terms
elif choice == "5":
print geekterms
# some unknown choice
else:
print "\nSorry, but", choice, "isn't a valid choice."
# geek speak link
print "\tTo learn to speak geek visit"
print "\n\t\thttp://www.youtube.com/watch?v=7BpsXZpAARk"
# 133t speak links
print "\n\n\tTo learn to 1337 speak visit"
print "\n\t\thttp://linuxreviews.org/howtos/l33t/"
print "\n\t\t\t\tor"
print "\n\t\thttp://textozor.com/hacker-text/"
# save dictionary
pickle.dump(ldict, open('geekdictionary.txt', 'r+'))
# close file
geekfile.close()
raw_input("\n\nPress the enter key to exit.")
When I run it, the system gave me the feedback below:
Traceback (most recent call last):
File "geek_translator3.py", line 4, in <module>
import pickle
File "/usr/local/lib/python2.5/pickle.py", line 13, in <module>
AttributeError: 'module' object has no attribute 'dump'
I don't understand, I don't write anything about pickle.py, why it mentioned?
what's wrong with "import pickle"? I read many examples online whose
has "import pickle", they all run very well.
Thank you!
--
Shurui Liu (Aaron Liu)
Computer Science & Engineering Technology
University of Toledo
More information about the Tutor
mailing list