Hello, I installed protobuf(3,1,0) on my mac, and I use open and read to 
read a .proto file, but I always get the error:

# f = 
open('/Users/junhao.wen/Hao/tutorial/Protocol_buffers_tutorial/tutorial/Protocol_buffers_basic_python/address_book/addressbook.proto',
 'rb')


Here is my code:

! /usr/bin/python

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")
  # f = 
open('/Users/junhao.wen/Hao/tutorial/Protocol_buffers_tutorial/tutorial/Protocol_buffers_basic_python/address_book/addressbook.proto',
 'rb')
  f = 
open('/Users/junhao.wen/Hao/tutorial/Protocol_buffers_tutorial/tutorial/Protocol_buffers_basic_python/address_book/test.proto',
 'rb')
  address_book.ParseFromString(f.read())
  f.close()
except IOError:
  print sys.argv[1] + ": Could not open file.  Creating a new one."

# 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()


Can someone give me a hint??? I really dont know where is the problem, and 
in the github, always nobody respond question...

Thanks 

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to