`
phyeas
  • 浏览: 164692 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Python获取JE用户头像 代码优化

阅读更多

发现昨天写的获取用户头像的代码效率有点低,于是今天重新设计了一下。

上代码:

    def getLogo(self, path=None, user=None, remote=False, localForld=APP_LOCAL_LOGO_FORLD_PATH):
        '''获取用户头像(此方法会将头像保存至本地,下次获取将获取本地图像)
        @param path:用户头像路径(服务器路径)
        @param user:用户
        @param remote: 是否从远程读取
        @param localForld: 本地存储路径 默认:config.APP_LOCAL_LOGO_FORLD_PATH
        @see: config.APP_LOCAL_LOGO_FORLD_PATH
        @return: 存储在本地的路径(str)
        '''
        if not path and not user:
            return None
        if not path and "logo" in user:
            path = user["logo"]
        localpath = self.getLocalLogoPath(path, localForld)
        
        if os.path.exists(localpath) and not remote:
            print "logo has exists in local!"
            return localpath
        request = Request(JE_URL + path)
        f = sendRequest(request)
        return self.saveLogo(path, f["data"], localForld)
            
    def saveLogo(self, path, data, localForld=APP_LOCAL_LOGO_FORLD_PATH):
        '''将头像保存至本地,生成本地序列号(文件名)
        @param path:服务器上的路径
        @param data:从服务器获取到的头像数据
        @param localForld:本地文件夹路径
        '''
        localPath = self.getLocalLogoPath(path, localForld)
        if not os.path.exists(localPath) and makeDir(os.path.dirname(localPath)):
            f = open(localPath, "w")
            try:
                f.write(data)
                return localPath
            finally:
                if f:f.close()
    
    def getLocalLogoPath(self, path, localForld=APP_LOCAL_LOGO_FORLD_PATH):
        '''获取服务器logo映射到本地logo的路径
        @param path:服务器路径
        @param localForld:本地存放logo文件夹
        '''
        if path[0] == '/':
            path = path[1:]
        return os.path.join(localForld, path)

 去掉了流水号作为文件名的机制,采用 服务器路径->本地路径 的直接转换,比如服务器路径为  /upload/xxx/xx/22.jpg,则本地路径就是/home/xx/upload/xxx/xx/22.jpg。其中用到的一个额外的函数(makeDir),是自己写的一个递归创建目录的方法。方法代码如下:

def makeDir(path):
    '''创建目录,如果父目录不存在则递归创建父目录
    @param path: 目录全路径
    '''
    if os.path.exists(path):
        return True
    parentDir = os.path.dirname(path)#获取父目录
    if not os.path.exists(parentDir):
        makeDir(parentDir)#如果父目录不存在,就先创建父目录
    os.mkdir(path)
    return True

 这样就节省了生成流水号,保存流水号和计算流水号带来的一些效率上的损失。

-------------------------------

有时候有些事情想得太复杂了。

分享到:
评论

相关推荐

    python获取gitlab代码仓库每日代码更新状况

    使用python代码获取gitlab仓库每日代码更新状况 适用于需要制作dashboard的运维人员和有需求的管理 场景:需要获取所有gitlab项目所有分支下提交代码的状况,数据存入到MySQL数据库 使用说明:在服务器上使用 python...

    鲸鱼优化算法python源代码

    鲸鱼优化算法python源代码

    基于Python获取北京时间

    3. 易用性:无需复杂的配置和安装过程,只需几行简单的Python代码,即可轻松获取北京时间。 4. 跨平台兼容性:该工具可在Windows、Linux、macOS等多种操作系统上运行,无需担心平台限制。 使用场景: * 开发者在...

    python 获取东财财务数据代码

    "python 获取东财财务数据代码"这个项目就是针对这一需求的具体实现,它利用Python语言从东方财富网(East Money)抓取并存储财务数据。东方财富网是中国领先的财经信息提供平台,拥有丰富的股票和财务数据,为投资...

    PYTHON做贪吃蛇代码

    PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...

    python爱心代码python爱心代码高级.zip

    python爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python...

    Python 代码性能优化技巧

    选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率...

    鲸鱼优化算法python代码

    鲸鱼优化算法python代码

    Python获取彩票信息源代码

    在Python中获取彩票信息可以通过多种方式实现,其中一种常见的方法是通过调用彩票数据的API接口来获取...总之,通过Python编程,我们可以灵活、高效地获取彩票信息,帮助用户了解彩票开奖情况,提高对彩票市场的关注度

    基于python的粒子群算法PSO优化支持向量机SVM设计与实现

    在压缩包中的"基于python的粒子群算法PSO优化支持向量机SVM设计与实现"文件中,很可能是详细介绍了如何结合Python编程语言和PSO算法来优化SVM模型的实现步骤,包括代码示例和可能的结果分析。读者可以通过阅读这份...

    python自动获取网络音乐工具源代码修改版

    Python是一种功能强大的编程语言,可以用于编写各种自动化工具。在网络音乐领域,我们可以利用Python编写...总的来说,利用Python编写自动获取网络音乐工具可以帮助用户快速获取音乐资源,提高用户体验和下载资效率。

    使用Abaqus CAE(python 脚本) 进行拓扑优化

    Abaqus是一款强大的非线性有限元分析软件,而Python作为其内建的编程接口,使得用户能够自动化复杂的分析流程,包括拓扑优化。 拓扑优化是一种设计方法,它通过改变结构内部的材料分布来最大化结构性能,例如刚度、...

    货位优化遗传算法python代码.zip

    本文将详细介绍基于遗传算法的货位优化方法,并以一份包含Matlab、Python源码及部分C语言代码的压缩包为案例,深入探讨其背后的原理与应用。 遗传算法(Genetic Algorithm, GA)是一种模拟自然选择过程的搜索算法,...

    Python实战示例 微信好友头像墙.zip

    Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python...

    GA-LSTM 遗传算法优化的lstm 预测代码 python实现

    通过Python实现,用户可以方便地调整和运行,这对于研究和实践中优化复杂模型的参数配置具有很高的价值。在深度学习和人工智能领域,这种组合方法有助于解决模型训练中的优化难题,特别是在数据有特定模式或长期依赖...

    python获取有赞token和有赞接口调用代码示例

    有赞token获取和有赞接口调用代码示例,具体的类没写,只是获取了下token和测试了下python调用有赞接口的方法。有需要的可以下下来看看。

    Python-Numpy基础练习代码

    Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 ...

    python获取SVN日志

    指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...

    用Python进行方差分析,代码详解

    用Python进行方差分析,代码详解

    Python 实例 - wxpy获取微信好友头像 Python源码

    Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy...

Global site tag (gtag.js) - Google Analytics