Помогите написать часть скрипта на Python'e
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 03 июл 2008, 09:43
- Репутация: 0
Помогите написать часть скрипта на Python'e
Задача такая: нужно делать выборку из таблицы по определенному значению, которое должен задавать пользователь вводя данные в инструмент.
Вот строка которая делает выборку:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", "\"NAME\" <> 111111")
- данные - feature, поле NAME, значение 111111.
Эта строка появилась, когда я экспортровал модель с инструментом SelectLayerByAttribute.
Необходимо чтобы при старте тула, человек забивал значение, которое будет искаться в поле NAME.
Например создаем переменную:
value = sys.argv[1]
Но как потом эту переменную впихнуть в это -
"\"NAME\" <> 111111"
Вся проблема в том, что выражение должно быть написано в ковычках.
Поделитесь опытом плиз. Спасибо
Вот строка которая делает выборку:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", "\"NAME\" <> 111111")
- данные - feature, поле NAME, значение 111111.
Эта строка появилась, когда я экспортровал модель с инструментом SelectLayerByAttribute.
Необходимо чтобы при старте тула, человек забивал значение, которое будет искаться в поле NAME.
Например создаем переменную:
value = sys.argv[1]
Но как потом эту переменную впихнуть в это -
"\"NAME\" <> 111111"
Вся проблема в том, что выражение должно быть написано в ковычках.
Поделитесь опытом плиз. Спасибо
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Помогите написать часть скрипта на Python'e
Попробуйте что-нибудь вроде:JGBoBBy писал(а): Вот строка которая делает выборку:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", ""NAME" <> 111111")
Необходимо чтобы при старте тула, человек забивал значение, которое будет искаться в поле NAME.
Например создаем переменную:
value = sys.argv[1]
Но как потом эту переменную впихнуть в это -
""NAME" <> 111111"
Код: Выделить всё
'"Name"<>'+str(value)
Можно попробовать
Код: Выделить всё
'"Name"<>'+'"'+str(value)+'"'
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 03 июл 2008, 09:43
- Репутация: 0
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 03 июл 2008, 09:43
- Репутация: 0
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 03 июл 2008, 09:43
- Репутация: 0
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 03 июл 2008, 09:43
- Репутация: 0
Re: Помогите написать часть скрипта на Python'e
Все-таки нужно выражение именно такого вида:KolesovDmitry писал(а):Попробуйте что-нибудь вроде:JGBoBBy писал(а): Вот строка которая делает выборку:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", ""NAME" <> 111111")
Необходимо чтобы при старте тула, человек забивал значение, которое будет искаться в поле NAME.
Например создаем переменную:
value = sys.argv[1]
Но как потом эту переменную впихнуть в это -
""NAME" <> 111111"Тогда, если vauee=546, то результатом выражения будет строка "NAME"<>546Код: Выделить всё
'"Name"<>'+str(value)
Можно попробоватьРезультат: "NAME"<>"546"Код: Выделить всё
'"Name"<>'+'"'+str(value)+'"'
""NAME" =111111"
в ковычках и со слешами... Как сделать?
Делаю так:
print '""NAME"'
результат
""NAME"
А как слеши сделать???
Спасибо
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Помогите написать часть скрипта на Python'e
Если нужно именно в кавычках и со слешами, то попробуйтеJGBoBBy писал(а): Все-таки нужно выражение именно такого вида:
""NAME" =111111"
в ковычках и со слешами... Как сделать?
Код: Выделить всё
print '"\"NAME\"=87768"'
Код: Выделить всё
""NAME"=87768"
Код: Выделить всё
print r'""NAME"=87768"'
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 03 июл 2008, 09:43
- Репутация: 0
Не могу понять в чем проблема. Нужно получить следующее:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", "\"NAME\" = 555")
Пытаюсь так:
value = 555
print '"\\"NAME\\" =' + str(value) + '"'
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", '"\\"NAME\\" =' + str(value) + '"')
результат print - "\"NAME\" = 555" - т.е. эта часть правильна, но результат выборки -
Traceback (most recent call last):
File "***", line 62, in <module>
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", '"\\"NAME\\" = ' + str(value) + '"')
ExecuteError: ERROR 000358: Invalid expression
Failed to execute (SelectLayerByAttribute).
Пытался так:
value = 555
exp = '"\\"NAME\\" =' + str(value) + '"'
print exp
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", exp)
Таже ошибка.
А вот если пишу так:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", "\"NAME\" = 555")
то выборка делается.
Видимо так нельзя параметр задавать для этого инструмнта. Подскажите пожалуйста как правильно писать. Спасибо
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", "\"NAME\" = 555")
Пытаюсь так:
value = 555
print '"\\"NAME\\" =' + str(value) + '"'
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", '"\\"NAME\\" =' + str(value) + '"')
результат print - "\"NAME\" = 555" - т.е. эта часть правильна, но результат выборки -
Traceback (most recent call last):
File "***", line 62, in <module>
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", '"\\"NAME\\" = ' + str(value) + '"')
ExecuteError: ERROR 000358: Invalid expression
Failed to execute (SelectLayerByAttribute).
Пытался так:
value = 555
exp = '"\\"NAME\\" =' + str(value) + '"'
print exp
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", exp)
Таже ошибка.
А вот если пишу так:
gp.SelectLayerByAttribute_management(feature, "NEW_SELECTION", "\"NAME\" = 555")
то выборка делается.
Видимо так нельзя параметр задавать для этого инструмнта. Подскажите пожалуйста как правильно писать. Спасибо
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и 2 гостя