Tag: командной строки

Python ArgParse Subparsers и привязка к правильной функции

Я создаю небольшой скрипт Python для управления различными классами серверов (FTP, HTTP, SSH и т. Д.). На каждом типе сервера мы можем выполнять различные типы действий (развертывание, настройка, проверка и т. Д.), У меня есть базовый класс Server , а затем отдельный класс для каждого типа сервера, который наследует от этого: class Server: … def […]

Python Option Parser: логический флаг с необязательными параметрами

Я использую optparse.OptionParser для управления аргументами для некоторых скриптов, и кое-что, что мне было интересно / хотелось бы сделать, это иметь логические флаги (например, action=store_true ), которые также могут принимать параметр. Чтобы включить это в контекст, у меня есть приложение, которое может использовать столько графических процессоров / процессоров, сколько оно находит на машине. По разным […]

Как правильно интерпретировать одну строку кода python?

Мне нужно выполнить строку кода python, введенную пользователем. Если это оператор, я хочу его выполнить, но если это выражение, я хочу, чтобы результат был возвращен и сделал некоторые причудливые вещи с ним. Проблема в том, что у python есть две разные функции: exec и eval . В настоящее время я просто пытаюсь оценить строку, введенную […]

Python argparse позволяет комбинированные флаги

Возможно ли, чтобы argparse анализировал комбинированные флаги следующим образом: app.py -bcda something В этом случае я хотел бы, чтобы something было установлено на -a а остальное было бы сохранено True. В основном: app.py -b -c -d -a something Я знаю, что большинство программ допускают это, например grep -rEw , но как тяжело это сделать с […]

Argparse неправильный порядок позиционных и необязательных параметров

Почему аргумент argparse не анализирует эти аргументы? –foo 1 2 3 bar С помощью parser = argparse.ArgumentParser() parser.add_argument('–foo', nargs='+') parser.add_argument('bar') который дает следующую ошибку: Ошибка: слишком мало аргументов Если сначала передать аргумент панели, он работает: bar –foo 1 2 3 Теперь это само по себе не так уж плохо. Я могу жить с позиционными аргументами […]

Командная строка Python – несколько линейных входов

Я пытаюсь решить проблему Krypto на https://www.spoj.pl в Python, которая включает в себя ввод в консоль. Моя проблема в том, что строка ввода имеет несколько строк, но необходима как одна строка в программе. Если я просто использую raw_input () и вставляю (для тестирования) текст в консоли, Python угрожает ему, как я нажал enter после каждой […]

Python: переход от optparse к argparse

После переключения с optparse на argparse – я испытываю странные ошибки. Argparse анализирует аргументы только в том случае, если не оставлять места: myScript.py -oOpt или поставить знак равенства: myScript.py -o=Opt и это не работает обычным способом: myScript.py -o Opt Вот моя инициализация argparse: #!/usr/bin/env python # to get description use the -h flag import argparse, […]

python -c и `while`

Есть ли способ зацикливаться while если вы запускаете скрипт с помощью python -c ? Это не похоже на платформу или версию python … Linux [mpenning@Hotcoffee ~]$ python -c "import os;while (True): os.system('ls')" File "<string>", line 1 import os;while (True): os.system('ls') ^ SyntaxError: invalid syntax [mpenning@Hotcoffee ~]$ [mpenning@Hotcoffee ~]$ python -V Python 2.6.6 [mpenning@Hotcoffee ~]$ uname […]

python argparse для обработки произвольных числовых параметров (например, HEAD (1))

Есть ли способ обмануть argparse в принятии произвольных числовых аргументов, таких как HEAD(1) ? head -5 test.txt эквивалентно head -n 5 test.txt Мой нынешний подход – использовать parse_known_args() а затем обрабатывать остаток, но я бы хотел, чтобы было что-то более элегантное.

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

Я разрабатываю утилиту командной строки Python, которая потенциально включает в себя довольно большие запросы к набору файлов. Это разумно конечный список запросов (думаю, индексированные столбцы БД). Чтобы улучшить производительность в процессе, я могу генерировать отсортированные / структурированные списки, карты и деревья один раз, и нажимать их несколько раз, а не нажимать на файловую систему каждый […]

Python - лучший язык программирования в мире.