Страница 1 из 2
неправильный вывод атрибутов
Добавлено: 08 июн 2012, 09:28
Cathrin
Код: Выделить всё
for (k,attr) in attrs.iteritems():
if k in [1,2]:
f.write("%d: %s" % (k, attr.toString()))
Вывожу вот таким образом атрибуты выделенного мною объекта.
но в файл,к атрибуту "площадь",записывается лишняя цифра "2".Именно "2".И так со всеми объектами
и вместо площади 121,я получаю 1212
Подскажите,пожалуйста,в чем может быть дело и как это можно исправить?
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 09:57
Denis Rykov
Так сложно сказать, приложите shape-файл хотя бы с парой таких объектов, чтобы можно было посмотреть.
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:14
Ariki
Подозреваю, что причина внутри toString()
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:26
Cathrin
вот
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:29
Cathrin
Ariki писал(а):Подозреваю, что причина внутри toString()
Да,мне тоже так кажется
Наверно при конвертации из int он что-то не то делает...но почему..непонятно..
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:29
Denis Rykov
Вы шутите? Попробуйте открыть у себя то, что вы выложили. Запакуйте все необходимые файлы в один архив и его приложите, в *.shp атрибутика не хранится.
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:31
Voltron
Denis Rykov писал(а):Вы шутите? Попробуйте открыть у себя то, что вы выложили.
Самое смешное, что у топикстартера как раз все откроется.
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:34
Cathrin
Всё всё,ступила и поторопилась,простите!
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:39
Denis Rykov
У меня никаких двоек лишних нет, всё нормально выводится:
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:41
Cathrin
а вы через консоль?
я просто в PyScripter.
запускаю как модуль
Это имеет значение?
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:43
Denis Rykov
Да, через консоль, что такое PyScripter не в курсе.
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:44
Cathrin
Код: Выделить всё
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
class HelloWorld:
def __init__(self, iface):
# Save reference to the QGIS interface
self.iface = iface
self.canvas = iface.mapCanvas()
def initGui(self):
# Create action that will start plugin
self.action = QAction(QIcon(":/plugins/"), "&HelloWorld", self.iface.mainWindow())
# connect the action to the run method
QObject.connect(self.action, SIGNAL("activated()"), self.hello_world)
# Add toolbar button and menu item
self.iface.addPluginToMenu("HelloWorld", self.action)
def unload(self):
# Remove the plugin menu item and icon
self.iface.removePluginMenu("HelloWorld",self.action)
# run
def hello_world(self):
QMessageBox.information(self.iface.mainWindow(), QCoreApplication.translate('HelloWorld', "HelloWorld"), QCoreApplication.translate('HelloWorld', "HelloWorld"))
f=open('/temp/op.txt', 'wt')
layer = self.iface.activeLayer()
feats = layer.selectedFeatures()
for feat in feats:
attrs = feat.attributeMap()
for (k,attr) in attrs.iteritems():
if k in [1,2]:
f.write("%d: %s" % (k,attr.toString()))
f.close()
if __name__ == "__main__":
pass
Вот весь мой код
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 10:59
Denis Rykov
А в консоли у вас нормально работает? Если да, то придется вам самим разбираться со своим PyScripter.
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 11:03
Cathrin
а в какой именно консоли вы запускали? в консоли Qgis?
я не могу запустить запустить через консоль.
построчно вводить или как скриптом,изначально записав код в .py файл ?
Re: неправильный вывод атрибутов
Добавлено: 08 июн 2012, 11:04
Cathrin
а PyScripter это IDE для python
или по-другому как Visual Studio для C#