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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to