On Feb 6, 10:25 am, Steve Holden <st...@holdenweb.com> wrote: > mmcclaf wrote: > > Hi there, > > > I have to make a small database using cPickle. I'm having troubles > > trying to read in the information if it's more than one line. I'm > > pretty sure it's in the line "for line in stuff:" Can anyone help me > > out? Basically the end result is wanting it to look something like > > what is down below when list is typed in: > > > Last name First Name Email Address > > Doe John > > j...@doe.com > > > [code] > > # @author: Ocdt Murray McClafferty 24656 > > # This will manage a small database using the cPickle module. > > # It must maintain a list of last names, first names and email > > addresses, and must let a user interact with the program > > > # > > #!usr/bin/python > > # -*- coding: utf-8 -*- > > > import sys > > import cPickle > > > # > > format = '%s %s %s' > > > try: > > filename = sys.argv[1] > > input = open(filename, 'r') > > > except IOError: > > print 'File is not available, will create a new file now' > > lastName='Last Name' > > firstName='First Name' > > email= 'Email' > > #input.close() > > output=open (filename, 'w') > > total = format%(lastName, firstName, email) > > cPickle.dump(total,output) > > #cPickle.dump(firstName,output) > > #cPickle.dump(email,output) > > output.close() > > except EOFError: > > print 'File is empty' > > > #datas = cPickle.load(input) > > > while True: > > command=sys.stdin.readline()[:-1] > > if command=='list': #lists the data in the file > > input = open(filename, 'r') > > stuff=cPickle.load(input) > > for line in stuff: > > #firstName=cPickle.load(input) > > #email=cPickle.load(input) > > #print repr (lastName).rjust(10), > > repr(firstName).rjust(20), repr > > (email).rjust(20) > > stuff=cPickle.load(input) > > print stuff > > print line > > > input.close() > > > if command=='exit' or command=='quit' : #NEVER forget the exit!!! > > print 'Save changes? y for Yes, n for No' > > commandSave=sys.stdin.readline()[:-1] > > if commandSave =='y': #if the user wants to save > > output=open(filename, 'w') > > cPickle.dump(work,output) > > output.close() > > sys.exit(0) > > if commandSave =='n': #no save > > input.close() > > sys.exit(0) > > > if command=='add': #adds an entity to the file > > print 'Last name?' > > lastName=sys.stdin.readline()[:-1] > > print 'First name?' > > firstName=sys.stdin.readline()[:-1] > > print 'Email address?' > > email=sys.stdin.readline()[:-1] > > work = format%(lastName, firstName, email) > > #output=open(filename, 'w') > > #data=cPickle.load(output) > > #data.append(work) > > #output.close() > > output=open(filename, 'a') > > cPickle.dump(work,output) > > output.close() > > > [/code] > > > All help would be appreciated. I am new to Python and this seems to be > > quite a challenge for me. > > Make sure you use modes "rb" and "wb" when you open the pickle files. If > you are running on Windows this can make a difference. > > regards > Steve > -- > Steve Holden +1 571 484 6266 +1 800 494 3119 > Holden Web LLC http://www.holdenweb.com/
I've tried both rb and wb as well as r and w, there appears to be no difference in the running of the code. -- http://mail.python.org/mailman/listinfo/python-list