0

我正在寻找一种在 python 中使用通用或集中式字典的方法。我有几个脚本可以处理相同的数据集,但是做不同的事情。我在这些脚本(例如仪器名称)中有字典,这些字典用于多个脚本。如果我进行更改或添加值,我必须确保我在所有脚本中都这样做,这当然很痛苦并且容易出错。

有没有可能,我有一本字典并在所有不同的脚本中使用它?

任何帮助表示赞赏 - 谢谢。

4

3 回答 3

2

我不完全理解您是在谈论在同一进程中运行的多个脚本,还是需要共享相同数据的多个进程:

几个过程:

我认为最简单的方法是在几个脚本(不同的进程)之间共享数据,是使用一个简单的文件数据库。

SQLite3 与 Python 捆绑在一起,因此这是一个不错的选择。

单进程:

如果您只是想集中访问同时运行的多个方法(在同一进程中),那么您可以在一个脚本中声明您的字典,并让所有其他方法访问该位置,而无需复制结构。你基本上在一个脚本中声明了这个字典,然后将它导入到所有其他脚本中。

于 2013-05-15T11:22:29.503 回答
1

对于这种情况,我的general_values.py项目根目录中有一个文件。

由于列表和dictionaries都是使用引用来存储值,因此使用相同dictlist不同的脚本不会导致问题,因为它们都将使用存储在内存中的相同的单个数据。

同样:

main_values.py

    my_dict = {1:1}

some.py

    import main_values
    main_values.my_dict[2] = 2

other.py

    import main_values
    print  main_values.my_dict

    >> {1:1, 2:2}
于 2013-05-15T11:29:39.147 回答
1

一些选项:

  • 您可以使用共享搁置文件。请参阅http://docs.python.org/2/library/shelve.html
  • 您可以将配置信息存储在 JSON/YAML 或类似文件中
  • 对于您的用例来说,这可能有点过头了,但是像http://redis.io(或轻量级密钥存储)数据库之类的东西将使您能够使用类似dict- 的接口来跨进程保留密钥并可以用于其他语言。
于 2013-05-15T11:45:58.590 回答