`
phyeas
  • 浏览: 161779 次
  • 性别: 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源代码

    iPhone获取手机型号Python代码

    iPhone获取手机型号Python代码

    python 获取东财财务数据代码

    python 获取东财财务数据代码,数据库mysql,可以获取目前全量财务。

    PYTHON做贪吃蛇代码

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

    python学习代码 python学习代码 python学习代码

    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代码

    灰狼优化算法python代码

    Python外星人大战完整代码

    Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python...

    PSO-SVM-master_svmpsopython_svmpython_svm优化_PSO优化_psosvm_

    pso-svm python 代码 基于粒子群算法优化支持向量机

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

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

    Python-Numpy基础练习代码

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

    Python通讯录程序代码

    实现通讯录功能,与加上GUI图形界面来实现这个通讯录功能与加上GUI图形界面来实现这个通讯录功能Python通讯录程序代码Python通讯录程序代码Python通讯录程序代码Python通讯录程序代码Python通讯录程序代码Python...

    python httpx http 客户端最新代码

    python httpx http 客户端最新代码python httpx http 客户端最新代码python httpx http 客户端最新代码python httpx http 客户端最新代码python httpx http 客户端最新代码python httpx http 客户端最新代码python ...

    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