LINUX.ORG.RU

Вывод текста при null argument

 


0

1

Как заставить python при null argument выводить не эту строку, а то, что мне нужно (описание скрипта и пример использования)? Городить парсер аргументов неохота, т.к. скрипт принимает всего 1-2 определённых аргумента.

Ответ на: комментарий от Kindly_Cat

Как так «не работает»?

╓─[nameless@localhost]┅┅(~/samples/python)
╙─[%> ./sample.py 
Usage: foo bar
╓─[nameless@localhost]┅┅(~/samples/python)
╙─[%> ./sample.py foo bar
Args:  ['foo', 'bar']
╓─[nameless@localhost]┅┅(~/samples/python)
╙─[%> cat sample.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

if len(sys.argv) < 2:
    sys.exit("Usage: foo bar")
print "Args: ", sys.argv[1:]

Было бы хорошо, если бы ты объяснил поконкретнее, что тебе нужно.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)

удивляюсь просто. у тебя столько проблем с питоном, что мне кажется, ты просто троллишь.

исходник будет вообще?

AGUtilities ★★★
()
Последнее исправление: AGUtilities (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

Если убрать импорт eix_pkg и cong, то всё работает.

Kindly_Cat
() автор топика
Ответ на: комментарий от Kindly_Cat

sys.exit принимает только int, None или str в качестве параметра, print - ничего не возвращает, такая запись бессмысленна: sys.exit(print(

eix_pkg, cong - что это такое и зачем оно надо?

AGUtilities ★★★
()
Ответ на: комментарий от Kindly_Cat

Только print там не нужен — если статус (аргумент sys.exit) не является числом, то он автоматически выводится на экран:

    sys.exit("Usage: \t frz <package> <version> (current version on default)")

А в чем ошибка-то была?

theNamelessOne ★★★★★
()
Ответ на: комментарий от AGUtilities

sys.exit принимает только int, None или str в качестве параметра

Не только.

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

В импортируемом модуле был дублирующий код с «Null argument»

Kindly_Cat
() автор топика
Ответ на: комментарий от theNamelessOne

Конечно он выше того чтобы рассказывать. Дебильная формулировка, тролловатые ответы, а теперь все свободны — проблема как-то решилась, не ваше собачье дело как. Нуба бы какашками закидали, но он же у вас авторитет ;)

anonymous
()
Ответ на: комментарий от theNamelessOne

А в чем ошибка-то была?

Почему «была»? DNA остаётся неизменной на протяжении «жизни».

anonymous
()
Ответ на: комментарий от Kindly_Cat

так ты и городишь парсер. argparse получается одна строчка на создание объекта с дескрипшеном, еще две на определение твоих двух параметров и 4-ая строчка для их парсинга.

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

А без argparse: 1 строчка на отсутствие аргументов... и всё. Те 1-2 аргумента даже в переменные передавать не стоит, просто вызывать напрямую по sys.argv[n]

Kindly_Cat
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.