发现昨天写的获取用户头像的代码效率有点低,于是今天重新设计了一下。
上代码:
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
这样就节省了生成流水号,保存流水号和计算流水号带来的一些效率上的损失。
-------------------------------
有时候有些事情想得太复杂了。
分享到:
- 2009-03-26 22:39
- 浏览 1276
- 评论(0)
- 论坛回复 / 浏览 (0 / 1870)
- 查看更多
相关推荐
使用python代码获取gitlab仓库每日代码更新状况 适用于需要制作dashboard的运维人员和有需求的管理 场景:需要获取所有gitlab项目所有分支下提交代码的状况,数据存入到MySQL数据库 使用说明:在服务器上使用 python...
鲸鱼优化算法python源代码
3. 易用性:无需复杂的配置和安装过程,只需几行简单的Python代码,即可轻松获取北京时间。 4. 跨平台兼容性:该工具可在Windows、Linux、macOS等多种操作系统上运行,无需担心平台限制。 使用场景: * 开发者在...
"python 获取东财财务数据代码"这个项目就是针对这一需求的具体实现,它利用Python语言从东方财富网(East Money)抓取并存储财务数据。东方财富网是中国领先的财经信息提供平台,拥有丰富的股票和财务数据,为投资...
PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...
python爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python...
选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率...
鲸鱼优化算法python代码
在Python中获取彩票信息可以通过多种方式实现,其中一种常见的方法是通过调用彩票数据的API接口来获取...总之,通过Python编程,我们可以灵活、高效地获取彩票信息,帮助用户了解彩票开奖情况,提高对彩票市场的关注度
在压缩包中的"基于python的粒子群算法PSO优化支持向量机SVM设计与实现"文件中,很可能是详细介绍了如何结合Python编程语言和PSO算法来优化SVM模型的实现步骤,包括代码示例和可能的结果分析。读者可以通过阅读这份...
Python是一种功能强大的编程语言,可以用于编写各种自动化工具。在网络音乐领域,我们可以利用Python编写...总的来说,利用Python编写自动获取网络音乐工具可以帮助用户快速获取音乐资源,提高用户体验和下载资效率。
Abaqus是一款强大的非线性有限元分析软件,而Python作为其内建的编程接口,使得用户能够自动化复杂的分析流程,包括拓扑优化。 拓扑优化是一种设计方法,它通过改变结构内部的材料分布来最大化结构性能,例如刚度、...
本文将详细介绍基于遗传算法的货位优化方法,并以一份包含Matlab、Python源码及部分C语言代码的压缩包为案例,深入探讨其背后的原理与应用。 遗传算法(Genetic Algorithm, GA)是一种模拟自然选择过程的搜索算法,...
Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python...
通过Python实现,用户可以方便地调整和运行,这对于研究和实践中优化复杂模型的参数配置具有很高的价值。在深度学习和人工智能领域,这种组合方法有助于解决模型训练中的优化难题,特别是在数据有特定模式或长期依赖...
有赞token获取和有赞接口调用代码示例,具体的类没写,只是获取了下token和测试了下python调用有赞接口的方法。有需要的可以下下来看看。
Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 Python-Numpy基础练习代码 ...
指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...
用Python进行方差分析,代码详解
Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy获取微信好友头像 Python源码Python 实例 - wxpy...