避免程序中因为文件io操作造成的效率问题

描述

  • 这个问题的出现是在我一个同事在django项目中的某一个接口读取yaml文件,从而致使接口效率极其的慢的小bug。

问题解决

  • 其实这个问题很好解决的,对于一个打开操作,只需要在程序中进行一次就可以了。
  • 那么如何只进行一次?就可以提供一个文件级别的私有函数打开这个文件,定义一个全局变量调用这个函数即可。如果本身需要对这个文件的内容提供操作接口的话,那么再定义一个函数深拷贝这个内容的内容进行操作就好了。
  • 为什么这样可行呢?
  • 因为在一个程序在运行过程中,所有模块级的变量都会被保存在内存中,不会被释放,于是就不需要经常的进行文件的打开和关闭操作了。所以就快了的。
  • 简单演示一下:
    import json
    
    from copy import deepcopy
    
    
    def __open_json():
        with open('path.json', 'r') as f:
            return json.load(f)
    
    
    CONTENT = __open_json()
    
    
    def open_json():
        """对 deepcopy CONTENT 进行操作即可"""
        content = deepcopy(CONTENT)
    
        return content
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值