Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19912431
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: Python/Ruby

2010-02-08 15:32:03

import os.path


class IdGenerator:
    
    def __init__(self, padding=6):
        self._pattern = '%%s%%0%dd' % padding
        self._ids = {}
       
    def get_id(self, type_=''):
        if not self._ids.has_key(type_):
            self._ids[type_] = 0
        self._ids[type_] += 1
        return self._pattern % (type_, self._ids[type_])
   
    def get_prev(self, type_=''):
        return self._pattern % (type_, self._ids[type_])


class FileNameGenerator:
   
    def __init__(self, basename):
        self._name, self._ext = os.path.splitext(basename)
        self._idgen = IdGenerator(padding=3)
   
    def get_name(self):
        return self._get_name(self._idgen.get_id())

    def get_prev(self):
        return self._get_name(self._idgen.get_prev())
   
    def get_base(self):
        return self._name + self._ext

    def _get_name(self, id_):
        return '%s-%s%s' % (self._name, id_, self._ext)

文件路径:
C:\Python26\lib\site-packages\robot\idgenerator.py
功能:生成id号和文件名,这个可以在很多程序通用。

    类IdGenerator用来为不同类型产生id,id从1开始递增;这个类有点略显难懂。
        模式self._pattern 中的'%%s%%0%dd' % padding 定义了缩进格式,如果填充padding为3,实际为:%s%03d
        get_id根据上面的格式输出id,如果对应的类型id没有值,则在字典中初始化为0。再加1作为返回值。
        get_prev取上一个id。不加加
    类FileNameGenerator:
        os.path.splitext拆分文件名和扩展名

 
阅读(20357) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~