diff options
author | Martin Poirier <theeth@yahoo.com> | 2009-03-13 21:04:38 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2009-03-13 21:04:38 +0300 |
commit | 54a55827ecee7f25d6a52255d8a639498a678fa6 (patch) | |
tree | 6311657bfab7e75fa59e6828e0381bdcd4ec9eda /release/scripts/ply_import.py | |
parent | dff781c2a8c77f35fefe00b0a561235861d4d053 (diff) | |
parent | 39acb4efa4c3f35806f5dc37124ff1028eb18215 (diff) |
merging trunk 19093:19274etch-a-ton
Diffstat (limited to 'release/scripts/ply_import.py')
-rw-r--r-- | release/scripts/ply_import.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/release/scripts/ply_import.py b/release/scripts/ply_import.py index 302e21a0a43..43129ec01e9 100644 --- a/release/scripts/ply_import.py +++ b/release/scripts/ply_import.py @@ -160,13 +160,16 @@ def read(filename): obj_spec = object_spec() try: - file = open(filename, 'rb') + file = open(filename, 'rU') # Only for parsing the header, not binary data signature = file.readline() - if (signature != 'ply\n'): + + if not signature.startswith('ply'): print 'Signature line was invalid' return None + while 1: tokens = re.split(r'[ \n]+', file.readline()) + if (len(tokens) == 0): continue if (tokens[0] == 'end_header'): @@ -197,14 +200,22 @@ def read(filename): obj_spec.specs[-1].properties.append(property_spec(tokens[4], type_specs[tokens[2]], type_specs[tokens[3]])) else: obj_spec.specs[-1].properties.append(property_spec(tokens[2], None, type_specs[tokens[1]])) + + if format != 'ascii': + file.close() # was ascii, now binary + file = open(filename, 'rb') + + # skip the header... + while not file.readline().startswith('end_header'): + pass + obj = obj_spec.load(format_specs[format], file) - + except IOError, (errno, strerror): try: file.close() except: pass return None - try: file.close() except: pass |