2014-02-07 4 views
0

s как только я попытаюсь получить доступ к любому методу для объекта «e» Я получаю сообщение об ошибке «AttributeError: экземпляр не имеет атрибута». Я предполагаю, что когда я создаю объект, я не делаю это правильно. Кто-нибудь знает, почему?Ошибки при попытке доступа к методу редактора

import shapefile 

sf = shapefile.Reader('C:/users/name/desktop/shapefiles/Polygon') 
e = shapefile.Editor(shapefile = 'desktop/shapefiles/Polygon.shp') 

indexesMpart = [i for i, shape in enumerate(shapes) if len(shape.parts) > 1] 
for index in indexesMpart: 
    e.field('something', fieldType = 'C', size = '4') 
+0

Где вы принимаете ошибку? Что такое * точная ошибка? –

+0

Traceback (последний последний вызов): Файл «C: \ Users \ askdljfasd \ Desktop \ Python \ multipart.py», строка 9, в e.field ('something', fieldType = 'C', size = '4') Файл «C: \ Python27 \ lib \ site-packages \ pyshp-1.2.0-py2.7.egg \ shapefile.py», строка 944, в поле self.fields.append ((имя, fieldType, size, decimal)) AttributeError: экземпляр редактора не имеет атрибутов 'fields' – wonderstruck80

ответ

0
Traceback (most recent call last): 
    File "C:\Users\something\Desktop\test2\testing.py", line 5, in <module> 
    e = shapefile.Editor(shapefile = 'C:/Users/something/Desktop/test2/testing') 
    File "C:\Python27\lib\site-packages\pyshp-1.2.0-py2.7.egg\shapefile.py", line 1048, in __init__ 
    self.records = r.records() 
    File "C:\Python27\lib\site-packages\pyshp-1.2.0-py2.7.egg\shapefile.py", line 525, in records 
    r = self.__record() 
    File "C:\Python27\lib\site-packages\pyshp-1.2.0-py2.7.egg\shapefile.py", line 490, in __record 
    value = int(value) 
ValueError: invalid literal for int() with base 10: '**********' 

После оценки ошибки и код shapefile.py, причина, почему объект Editor возвращал ValueError из-Null атрибутов в файле .dbf, связанный с файлом .shp. Простая атрибуция [0,1,2,3,4,5] для каждого элемента в моем .shp-файле удовлетворяет конструктору, пытающемуся вызвать метод записей.

Благодарим за помощь. Сайлас, не смог бы это выяснить, если бы не руководствовался.

1

Глядя на код этого модуля, единственный способ, которым я могу видеть (есть на самом деле a patch submitted для этого), что вы могли бы в конечном итоге с Editor объекта без атрибута fields, если условная if os.path.isfile("%s.shp" % base): в строке 1043 не удается потому что он не может найти файл .shp. Вы уверены, что ваш файл существует и что вы инициализируетесь с правильным именем пути и файла?

+0

Я абсолютно уверен. Я могу получить доступ к файлу формы с помощью класса Reader – wonderstruck80

+0

Только когда я создаю объект для класса Writer или Editor и пытаюсь вызвать один из его методов, я получаю сообщение об ошибке – wonderstruck80

+1

Ну, в соответствии с кодом, который вы скопировали здесь , вы открываете редактор с относительным вместо абсолютного пути. Вместо этого попробуйте использовать абсолютный путь. –

Смежные вопросы