python 3.x从pickle恢复变量 - python

我在泡菜词典中有几十个变量。如果满足某些条件,则需要恢复所有这些变量(所有不同类型),并使用与dict的键相同的名称。

我简化了代码以指出问题。例如,键之一是“ ref10_data”。如果变量在函数的其他位置定义,则不会被覆盖,但我希望它会被覆盖。

import _pickle as pickle
from numpy import max

def main():
  processing_path = '/data/common/PROBSEV_DATA/processing/'
  ref10_data = 0
  restore_dict = pickle.load(open(processing_path + 'cc_rt_prob_svr.out','rb'))

  for key in restore_dict:
    globals()[key] = restore_dict[key]

  print(max(ref10_data))

if __name__ == '__main__':
  main()

打印的内容是“ 0”。这种question/answer的工作方式,但是如果先前定义了变量,它将不会覆盖该变量。如何获得它以重新定义变量,还是有更好的方法来构造此功能?
谢谢。

参考方案

您可以简单地将变量作为关键字参数(“ kwargs”)传递给另一个函数,而不用篡改通俗易懂的globals

def foo(ref10_data, another_var, yet_another_var):
    print(max(ref10_data))

def main():
    ...
    restore_dict = pickle.load(...)
    foo(**restore_dict)

这是简单,直观和Pythonic的。

Python Pickle调用构造函数 - python

我想使用Python的pickle序列化器提供缺少值的默认值。由于类很简单,因此默认值自然存在于类的__init__方法中。我从pickle documentation看到有__getnewargs__。但是,这仅适用于在“酸洗”之前存在__getnewargs__的情况。有什么方法可以让python pickle始终调用构造函数,而不是从未初始化的对象开始…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…