[Tutor] find pickle and retrieve saved data
Quiles, Stephanie
stephanie.quiles001 at albright.edu
Wed Aug 5 00:09:27 CEST 2015
I am still struggling with this one.
Here is my code to retrieve data from emails.dat file
def main():
found = False
search = input("Enter a name in the file for info: ")
infile = open("emails.dat", "r")
name = infile.readline()
while name != '':
email1, email2, phone, phone2 = (infile.readline())
name = name.rstrip("\n")
if name == search:
print("name: ", name)
print("Email1, alternate email, phone, alternate phone", email1, email2, phone, phone2)
print()
found = True
name = infile.readline()
infile.close()
if not found:
print("That name is not found in file.")
main()
This is the error i am getting:
enter a name in the file for info: sarah
Traceback (most recent call last):
File "/Users/stephaniequiles/Downloads/findemails.py", line 28, in <module>
main()
File "/Users/stephaniequiles/Downloads/findemails.py", line 9, in main
name = infile.readline()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/codecs.py", line 319, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Process finished with exit code 1
> On Aug 3, 2015, at 8:13 AM, Quiles, Stephanie <stephanie.quiles001 at albright.edu> wrote:
>
> I'm trying to tell it to print everything under that particular name. I would have to def info, correct? But set it equal to what to make it work?
>
> Stephanie Quiles
> Sent from my iPhone
>
>> On Aug 3, 2015, at 3:12 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:
>>
>>> On 03/08/15 04:04, Quiles, Stephanie wrote:
>>>
>>> def main():
>> ...
>>> name_search = input("Enter a name in the file for info: ")
>>>
>>> for name in emails:
>>> if name[0] == name_search:
>>> print("This is the info: ", info)
>>
>> What is info? Is it supposed to be name? or name[1:]?
>> Its not set anywhere in your code.
>>
>>> return emails
>>
>> Notice the return is outside the if block.
>> So you always return on the first element of the for loop.
>>
>>> else:
>>> print("Entry not Found! Try again.")
>>
>> --
>> Alan G
>> Author of the Learn to Program web site
>> http://www.alan-g.me.uk/
>> http://www.amazon.com/author/alan_gauld
>> Follow my photo-blog on Flickr at:
>> http://www.flickr.com/photos/alangauldphotos
>>
>>
>> _______________________________________________
>> Tutor maillist - Tutor at python.org
>> To unsubscribe or change subscription options:
>> https://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list