неправильный вывод атрибутов

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki »

В консоли хотя бы так попробуйте (выделив несколько объектов):

Код: Выделить всё

qgis.utils.iface.activeLayer().selectedFeatures()[0].attributeMap()[1].toString()
У меня в 1.7.4 все нормально
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin »

как ввести в консоль фор?
если в неё только построчно можно вводить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov »

С чего ради только построчно. Пишите сначала, например, "for a in [1,2,3]:" затем нажимаете Enter, переходите на следующую строку, появляются три точки: "...", делаете обязательный в python отступ (например, 4 пробела) вводите строку кода и снова нажимаете Enter, если эта строка тоже должна быть выполнена внутри цикла for, то опять набиваете отступ, код и жмёте Enter, если на этом ваш цикл закончем, то опять Enter и он будет выполнен.

Код: Выделить всё

>>> for a in [1,2,3]:
...     print a
... 
1
2
3
Spatial is now, more than ever, just another column- The Geometry Column.
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin »

Код: Выделить всё

>>> for feat in feats:
... 	attrs = feat.attributeMap()
... 	for (k,attr) in attrs.iteritems():
... 		if k in [0,1,2]:
... 			f.write("%d: %s" % (k,attr.toString()))
... 
>>>  f.close()
  File "<input>", line 1
    f.close()
   ^
IndentationError: unexpected indent
вот такое дело вылетает
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki »

Запустил ваш HelloWorld на QGIS 1.7.4. Вывод примерно такой:

Код: Выделить всё

1: 1072: 0051: 1232: 0041: 635
Если у вас так же, то все ОК. Неплохо бы вставить разделитель (скажем, \n) в конец строки формата
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki »

На f.close() у вас лишний пробел в отступе, разве сами не видите?
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin »

0: 31: 1812: 0580: 31: 11102: 059

да,всё равно выводит лишнюю двойку
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki »

Это не лишняя двойка, это номер вашего атрибута

Код: Выделить всё

 f.write("%d: %s\n" % (k, attr.toString()))
Так понятнее?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov »

2Cathrin
Я же вам сразу написал вариант с переносом строк ещё вчера.
Spatial is now, more than ever, just another column- The Geometry Column.
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin »

я пишу с переносом строки,так же как вы и мне написали до этого

но он всё равно выводит так же...
я уже увидела что это номера атрибутов

0: 31: 5382: 080

вот результат вывода
но как мне его убрать?
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki »

А операционная система какая? Если Windows, возможно, следует завершать строку комбинацией "\r\n". Хотя у меня в Windows 7 Блокнот и так нормально отображает Python сам добавляет CR перед LF.
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin »

10 минут назад,до вашего поста,я именно так и попробовала)
всё заработало!
спасибо))
Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki »

А я теперь ломаю голову, почему у меня Python ведет себя неправильно, добавляя CR перед LF при выводе в файл. Не должен он делать этого.
PEP 278
Преобразование должно осуществляться только при чтении.
Проверил на двух компьютерах с Python 2.5 и 2.6 - на обоих такая ситуация. Единственное, что смущает - на обоих Python установлен в составе ArcGIS. Может, это Esri так патчит Python под себя?
Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей