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

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

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

Сообщение Ariki » 08 июн 2012, 11:11

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

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

qgis.utils.iface.activeLayer().selectedFeatures()[0].attributeMap()[1].toString()
У меня в 1.7.4 все нормально

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

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

Сообщение Cathrin » 08 июн 2012, 11:17

как ввести в консоль фор?
если в неё только построчно можно вводить

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

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

Сообщение Denis Rykov » 08 июн 2012, 11:22

С чего ради только построчно. Пишите сначала, например, "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 » 08 июн 2012, 11:30

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

>>> 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 » 08 июн 2012, 11:34

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

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

1: 1072: 0051: 1232: 0041: 635
Если у вас так же, то все ОК. Неплохо бы вставить разделитель (скажем, \n) в конец строки формата

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

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

Сообщение Ariki » 08 июн 2012, 11:39

На f.close() у вас лишний пробел в отступе, разве сами не видите?

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

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

Сообщение Cathrin » 08 июн 2012, 13:16

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

да,всё равно выводит лишнюю двойку

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

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

Сообщение Ariki » 08 июн 2012, 13:26

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

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

 f.write("%d: %s\n" % (k, attr.toString()))
Так понятнее?

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

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

Сообщение Denis Rykov » 09 июн 2012, 05:19

2Cathrin
Я же вам сразу написал вариант с переносом строк ещё вчера.
Spatial is now, more than ever, just another column- The Geometry Column.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

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

Сообщение Cathrin » 09 июн 2012, 09:15

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

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

0: 31: 5382: 080

вот результат вывода
но как мне его убрать?

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

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

Сообщение Ariki » 09 июн 2012, 09:22

А операционная система какая? Если Windows, возможно, следует завершать строку комбинацией "\r\n". Хотя у меня в Windows 7 Блокнот и так нормально отображает Python сам добавляет CR перед LF.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

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

Сообщение Cathrin » 09 июн 2012, 10:13

10 минут назад,до вашего поста,я именно так и попробовала)
всё заработало!
спасибо))

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

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

Сообщение Ariki » 09 июн 2012, 14:15

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

Ответить

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

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

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