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

    NFT人物头像随机生成器Python源码

    在这个特定的项目中,"NFT人物头像随机生成器Python源码" 是一个利用Python编程语言编写的程序,用于创建具有独特设计的人物头像,这些头像可以被用作NFT艺术品的基础。通过这个程序,用户可以生成一系列随机组合的...

    python 获取东财财务数据代码

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

    PYTHON做贪吃蛇代码

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

    基于Python获取北京时间

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

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

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

    鲸鱼优化算法python代码

    鲸鱼优化算法python代码

    Python外星人大战完整代码

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

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

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

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

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

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

    标题中的“货位优化遗传算法python代码”是指利用遗传算法解决货位布局优化问题的Python实现。遗传算法是一种模拟自然选择和遗传机制的全局优化方法,广泛应用于解决复杂优化问题,如物流仓储中的货位分配。 在描述...

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

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

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

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

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

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

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

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

    Python通讯录程序代码

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

    python获取SVN日志

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

    python httpx http 客户端最新代码

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

    PSO优化的BP神经网络——python实现

    **标题与描述解析** 标题"PSO优化的BP神经网络——...通过阅读和理解代码,可以学习到如何利用Python构建神经网络模型,并通过PSO进行优化。同时,这也是一个学习和交流的好机会,可以提升个人在机器学习领域的技能。

Global site tag (gtag.js) - Google Analytics