Активируйте объект / файл для последовательных вызовов командной строки, которые будут направлены к этому объекту / файлу (Python) - PullRequest
0 голосов
/ 08 февраля 2020

Я делаю консольное бюджетное приложение, которое хранит данные в JSON. Я сделал несколько разных команд через argparse, и я очень рад, однако я бы не хотел, чтобы express каждый раз, когда бюджет (если у человека несколько разных), который последовательно добавляет, вычитает или редактирует будет к.

Есть ли способ «активировать» объект, как вы делаете это с виртуальными средами, чтобы каждый последовательный вызов в течение этого периода был направлен к этому конкретному c бюджету json файлу?

Например, $ python3 budget.py activate <name>, тогда, если я сделаю $ python3 budget.py add <amount> <label>, это будет добавлено в мой активированный бюджет. json файл. Я не хочу каждый раз добавлять аргумент в какой бюджетный файл для добавления данных.

1 Ответ

0 голосов
/ 08 февраля 2020

Для этого можно использовать переменные среды.

Сначала установите переменную среды с именем текущего объекта:

Вкл. Linux:

export CURRNT_OBJECT=<name>

В Windows Powershell:

$env:CURRNT_OBJECT=<name>

И вы можете получить доступ к текущему объекту в вашем скрипте python, используя:

os.getenv("CURRENT_OBJECT")

Если вы хотите, чтобы все взаимодействие происходило с вашим * Сценарий 1022 *, вы можете установить переменную окружения в python:

os.environ["CURRENT_OBJECT"] = name

и использовать argparse для запуска этой строки с именем объекта при вызове python3 budget.py activate <name>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...