Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中用于更新/追加json配置文件的命令行工具 要求_Python_Json_Python 3.x_Command Line Interface - Fatal编程技术网

Python中用于更新/追加json配置文件的命令行工具 要求

Python中用于更新/追加json配置文件的命令行工具 要求,python,json,python-3.x,command-line-interface,Python,Json,Python 3.x,Command Line Interface,我正在创建一个Python3模块,我希望将其移植到嵌入式板(使用Yocto)上,并使用setuptools而不是PyPi上 我在主模块文件夹中有一个conf.json文件: myApp | -- submodule-1 | -- submodule-2 | -- main.py | -- conf.json 之所以选择conf.json文件,是因为其中提到了非代码文件 这变得有点复杂,因为据我所知,一旦安装了软件包(使用pip install.),目标文件夹就变得更加复杂,难以到达: /us

我正在创建一个
Python3
模块,我希望将其移植到嵌入式板(使用Yocto)上,并使用
setuptools
而不是PyPi上

我在主模块文件夹中有一个
conf.json
文件:

 myApp
| -- submodule-1
| -- submodule-2
| -- main.py
| -- conf.json
之所以选择
conf.json
文件,是因为其中提到了非代码文件

这变得有点复杂,因为据我所知,一旦安装了软件包(使用
pip install.
),目标文件夹就变得更加复杂,难以到达:

/usr/local/bin/python3/dist-packages/myApp/myApp/conf.json
(与上面类似)

用法
  • 有一种特殊情况,应用程序的用户最初会触发一些二进制文件,以获取有关进程的一些相关信息,然后需要将它们添加到
    conf.json
  • 数据:

    上述内容应附加到
    conf.json
    中,并在结构中使用相应的键

  • conf.json
    中的信息更新为启用/禁用某些功能
  • 数据:

    计划 我正在考虑为用户制作一个命令行工具:

    change-config  --system gps --key active --value false
    

    可能使用
    kwargs
    argParse
    但发现
    kwargs
    与Python函数不一样

    是否有一个开源的实现,可以实现与我的需求类似的功能

    终极手段
    我可以在
    /etc/myApp/
    中添加
    conf.json
    ,用户可以在那里进行更新。

    我觉得这个问题不是关于python,而是关于软件部署/发布。我也有强烈的感觉,你在这里要求的是软件推荐,而不是代码,所以我希望这篇文章被转移到。无论如何,我的建议如下:

  • 不要在python包中包含配置文件。如果您使用工具以*nix系统为目标,请从
    /etc/
    、用户主目录或环境变量中设置的某些文件中读取配置文件。所有这些都是访问配置文件的实际方式,用户希望您的软件遵守其中一种方式(就个人而言,当我不得不使用不符合此约定的程序时,我会感到痛苦)

  • 要通过命令行操作JSON文件,有以下步骤。如果想让用户的生活更轻松,可以编写自己的程序,从命令行读取并保存到JSON文件中。我不知道有什么python工具可以做到这一点,但编写一个应该不会太难。如果你要这么做的话

    2.1用于解析命令行。 2.2使用,它很简单

  • 最后,我要告诉你,要坚持我在(1)中的建议,并且让你的用户用他们最喜欢的编辑器编辑配置文件*nix用户非常喜欢手动编辑配置文件,或者使用
    sed
    ,或者
    perl
    ,或者任何不意味着拥有“配置工具”的方法

  • 听起来你只需要标准库中的
    argparse
    json
    。@geogeg我知道它们是标准的,但是通过命令行使用
    argparse
    解析json并不容易,我认为你是对的。如果是*NIX系统,那么
    /etc/
    是一种更简单的方法。谢谢
     previously
     {
        "gps": {
            "active": true
         }
     }
    
     now 
     {
        "gps": {
           "active": false
    
         }
     }
    
    change-config  --system gps --key active --value false
    
     change-config --configVals --list {1234}