/thirdparty/breakpad/third_party/protobuf/protobuf/examples/add_person.py
http://github.com/tomahawk-player/tomahawk · Python · 58 lines · 37 code · 12 blank · 9 comment · 10 complexity · ea0267adf2f2d7f430aa19d8c37a6901 MD5 · raw file
- #! /usr/bin/python
- # See README.txt for information and build instructions.
- import addressbook_pb2
- import sys
- # This function fills in a Person message based on user input.
- def PromptForAddress(person):
- person.id = int(raw_input("Enter person ID number: "))
- person.name = raw_input("Enter name: ")
- email = raw_input("Enter email address (blank for none): ")
- if email != "":
- person.email = email
- while True:
- number = raw_input("Enter a phone number (or leave blank to finish): ")
- if number == "":
- break
- phone_number = person.phone.add()
- phone_number.number = number
- type = raw_input("Is this a mobile, home, or work phone? ")
- if type == "mobile":
- phone_number.type = addressbook_pb2.Person.MOBILE
- elif type == "home":
- phone_number.type = addressbook_pb2.Person.HOME
- elif type == "work":
- phone_number.type = addressbook_pb2.Person.WORK
- else:
- print "Unknown phone type; leaving as default value."
- # Main procedure: Reads the entire address book from a file,
- # adds one person based on user input, then writes it back out to the same
- # file.
- if len(sys.argv) != 2:
- print "Usage:", sys.argv[0], "ADDRESS_BOOK_FILE"
- sys.exit(-1)
- address_book = addressbook_pb2.AddressBook()
- # Read the existing address book.
- try:
- f = open(sys.argv[1], "rb")
- address_book.ParseFromString(f.read())
- f.close()
- except IOError:
- print sys.argv[1] + ": File not found. Creating a new file."
- # Add an address.
- PromptForAddress(address_book.person.add())
- # Write the new address book back to disk.
- f = open(sys.argv[1], "wb")
- f.write(address_book.SerializeToString())
- f.close()