当前位置: 首页 > wzjs >正文

单位网站建设程序wordpress 数据优化

单位网站建设程序,wordpress 数据优化,个人主页图片,代理商加盟任务 需要知道一个目录对另一个目录的相对路径是什么–比如,有时需要创建一个符号链接或者一个相对的 URL 引用。 解决方案 最简单的方法是把目录拆分到一个目录的列表中,然后对列表进行处理。我们需要用到一些辅助函数和助手函数,代码如下…

任务

需要知道一个目录对另一个目录的相对路径是什么–比如,有时需要创建一个符号链接或者一个相对的 URL 引用。

解决方案

最简单的方法是把目录拆分到一个目录的列表中,然后对列表进行处理。我们需要用到一些辅助函数和助手函数,代码如下:

import os,itertools
def all_equal(elements):
'''若所有元素都相等,则返回True,否则返回False'''first_element = elements[0]for other_element in elements[1:]:if other_element != first_element:return Falsereturn True
def common_prefix(*sequences):
'''返回所有序列开头部分共同元素的列表
紧接一个各序列的不同尾部的列表'''#如果没有sequence,完成if not sequences: return [ ],[ ]#并行的循环序列common = [ ]for elements in itertools.izip(*sequences):#若所有元素相等,跳出循环if not all_equal(elements):break#得到一个共同的元素,添加到末尾并继续common.append(elements[0])#返回相同的头部和各自不同的尾部return common,[sequence[len(common):] for sequence in sequences]
def relpath(pl,p2,sep=os.path.sep,pardir=os.path.pardir):
'''
返回p1对p2的相对路径
特殊情况:空串,if pl == P2;
p2,如果p2和p1完全没有相同的元素
'''common,(u1,u2) = common_prefix(p1.split(sep), p2.split(sep))if not common:return p2return  sep.join([pardir]*len(u1)+u2)
#如果完全没有共同元素,则路径是绝对路径
def test(pl,p2,sep = os.path.sep):
'''调用relpath函数,打印调用参数和结果'''print "from",pl,"to",p2,"->",relpath(pl,p2,sep)
if __name__ == '__main__':test('/a/b/c/d','/a/b/c1/d1','/')test('/a/b/c/d','/a/b/c/d','/')test('c:/x/y/z','d:/x/y/z','/')

讨论

本节解决方案给出的代码中,简单而通用的commonprefx是关键部分,给它任意个序列,它能返回 N个序列共同的头部,和一个各不相同的尾部列表。为了计算两个目录之间的相对路径,可以忽略掉它们的共同头部。我们只需要一定数目的“向上一级”标记(通常用 os.path.pardir,比如类UNIX 系统中的…/;需要和尾部长度相同数目的这种符号),然后再添上目标目录的尾部。relpath函数将一个完整路径拆成一个目录的列表,然后调用common_prefix,接着执行我们刚才描述过的操作。

common_prefix的核心部分在那个循环,for elements in itertools.izip(*sequences),它依赖这个事实:当最短的序列循环到头时,izip也结束了。循环的主体部分必须在遇到一个不全相等的元组(根据 izip的说明,每个元素都来自各序列)时立刻结束,同时还要在这个过程中把全等的元素放进common 列表中保存起来。一旦循环结束,剩下要做的事情就是根据 common 列表,把各个序列的相同头部全部切掉。

all_equal 函数还能用另一种方式实现,没那么简洁明快,但是也很有趣:

def all_equal(elements):return len(dict.fromkeys(elements)) == 1

或者,等价但更简洁一点,适用于Python 2.4 以上:

def all_equal(elements):
return len(set(elements)) == 1

所有元素相等,等价于包含且只包含这些元素的集合的势(cardinality)为1。在使用dict.fromkeys 的变体中,用 dict 来代替 set,所以那个例子可同时适用于 Python 2.3 和2.4。用 set 的那个例子更清晰,但只能在 Python 2.4 以上的版本中使用(可以用 Python标准库中的 sets模块来改写,让它也同时适用于 Python 2.3)。

http://www.dtcms.com/wzjs/536813.html

相关文章:

  • 食品营销型网站有成功案例的网站
  • 百度网站建设的意义最专业的网站设计
  • 网站的定位与功能php 企业网站模板
  • 甘肃住房城乡建设厅网站首页瀚钦科技网站建设
  • 凡总创业网站wordpress设置为繁体字
  • 功能网站首页模板广州顶正餐饮培训学校
  • 国外的哪个网站可以做跳转望城警务督察网站建设
  • 网站系统评测要怎么做呢怎样营销能有效获取客户
  • 廊坊网站建设开发服务器做网站用什么系统
  • 如何建设一个优秀的电商网站怎么自己做淘宝客网站吗
  • 本地搭建wordpress建站教程四川省城乡建设信息网站证件查询
  • 网站定制公司哪家好国外高清视频素材网站推荐
  • 国外网站鞋子做的好的网站seo公司优化方案
  • 怎么快速提升网站权重企业网站建设免费
  • 阿里云有域名之后怎么建设网站广西网站运营
  • php的网站数据库如何上传百度网站联盟
  • 母婴用品商城网站建设设计师网站登录
  • 成都网站设计与制作江西网站备案要求
  • 网站建设要多久seo顾问服务公司站长
  • 网站备案和不备案的区别wordpress+上一篇+下一篇
  • 怎么搭建网站后台搭建一个官网需要多少钱
  • 青海省高等级公路建设管理局网站湖北短视频搜索seo
  • 织梦网站建设实训心得响应式学校网站
  • 网站建设工作室门头免费做网站页头图
  • 用c 做一个小网站怎么做绍兴seo
  • 网站主题模板下载不了顺德大良网站建设
  • 如何做网站怎么赚钱吗wordpress 怎么打开
  • 想在百度做网站品牌网站 响应式网站
  • 网站建设分金手指排名二九建网站排名
  • 网站设计与管理的软件广州在建火车站在哪里