发现昨天写的获取用户头像的代码效率有点低,于是今天重新设计了一下。
上代码:
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
- 浏览 1270
- 评论(0)
- 论坛回复 / 浏览 (0 / 1866)
- 查看更多
相关推荐
使用python代码获取gitlab仓库每日代码更新状况 适用于需要制作dashboard的运维人员和有需求的管理 场景:需要获取所有gitlab项目所有分支下提交代码的状况,数据存入到MySQL数据库 使用说明:在服务器上使用 python...
鲸鱼优化算法python源代码
在这个特定的项目中,"NFT人物头像随机生成器Python源码" 是一个利用Python编程语言编写的程序,用于创建具有独特设计的人物头像,这些头像可以被用作NFT艺术品的基础。通过这个程序,用户可以生成一系列随机组合的...
"python 获取东财财务数据代码"这个项目就是针对这一需求的具体实现,它利用Python语言从东方财富网(East Money)抓取并存储财务数据。东方财富网是中国领先的财经信息提供平台,拥有丰富的股票和财务数据,为投资...
PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...
3. 易用性:无需复杂的配置和安装过程,只需几行简单的Python代码,即可轻松获取北京时间。 4. 跨平台兼容性:该工具可在Windows、Linux、macOS等多种操作系统上运行,无需担心平台限制。 使用场景: * 开发者在...
python爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python爱心代码高级.zippython爱心代码高级python爱心代码python...
鲸鱼优化算法python代码
Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python外星人大战完全代码Python...
在压缩包中的"基于python的粒子群算法PSO优化支持向量机SVM设计与实现"文件中,很可能是详细介绍了如何结合Python编程语言和PSO算法来优化SVM模型的实现步骤,包括代码示例和可能的结果分析。读者可以通过阅读这份...
Python是一种功能强大的编程语言,可以用于编写各种自动化工具。在网络音乐领域,我们可以利用Python编写...总的来说,利用Python编写自动获取网络音乐工具可以帮助用户快速获取音乐资源,提高用户体验和下载资效率。
标题中的“货位优化遗传算法python代码”是指利用遗传算法解决货位布局优化问题的Python实现。遗传算法是一种模拟自然选择和遗传机制的全局优化方法,广泛应用于解决复杂优化问题,如物流仓储中的货位分配。 在描述...
Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python实战微信好友头像墙Python...
通过Python实现,用户可以方便地调整和运行,这对于研究和实践中优化复杂模型的参数配置具有很高的价值。在深度学习和人工智能领域,这种组合方法有助于解决模型训练中的优化难题,特别是在数据有特定模式或长期依赖...
有赞token获取和有赞接口调用代码示例,具体的类没写,只是获取了下token和测试了下python调用有赞接口的方法。有需要的可以下下来看看。
Abaqus是一款强大的非线性有限元分析软件,而Python作为其内建的编程接口,使得用户能够自动化复杂的分析流程,包括拓扑优化。 拓扑优化是一种设计方法,它通过改变结构内部的材料分布来最大化结构性能,例如刚度、...
实现通讯录功能,与加上GUI图形界面来实现这个通讯录功能与加上GUI图形界面来实现这个通讯录功能Python通讯录程序代码Python通讯录程序代码Python通讯录程序代码Python通讯录程序代码Python通讯录程序代码Python...
指定区间时间 获取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 ...
**标题与描述解析** 标题"PSO优化的BP神经网络——...通过阅读和理解代码,可以学习到如何利用Python构建神经网络模型,并通过PSO进行优化。同时,这也是一个学习和交流的好机会,可以提升个人在机器学习领域的技能。