我正在做一个控制台预算应用程序,它以JSON格式存储数据。我已经通过argparse发出了几个不同的命令,这让我很高兴,但是,我不想每次都能表达出每一次的预算(如果这个人有几个不同的预算),顺序的加,减或编辑将会是什么。
有没有办法“激活”一个对象,就像你在虚拟环境中做的那样,这样在这段时间内的每个顺序调用都会指向这个特定的Budget json文件?
例如,$ python3 budget.py activate <name>,那么如果我使用$ python3 budget.py add <amount> <label>,它将被添加到我激活的budget.json文件中。我不想每次都添加要向哪个预算文件添加数据的参数。
发布于 2020-02-08 18:20:04
为此,您可以使用环境变量。
首先使用当前对象的名称设置一个环境变量:
在Linux上:
export CURRNT_OBJECT=<name>在Windows Powershell上:
$env:CURRNT_OBJECT=<name>您可以使用以下命令访问python脚本中的当前对象:
os.getenv("CURRENT_OBJECT")如果您希望所有交互都与您的python脚本一起进行,则可以在python中设置环境变量:
os.environ["CURRENT_OBJECT"] = name在调用python3 budget.py activate <name>时,使用argparse使用对象的名称运行这一行。
https://stackoverflow.com/questions/60125599
复制相似问题