`
mrjeye
  • 浏览: 176630 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

枚举文件加入特定字符串

阅读更多
import os,os.path
path = os.path
class VersionOper(object):
    'The version appendor class .'
    __dir =''
    __appendStr='mrjeye'
    __isDebug =False
    __doType =()
    
    def debug(self,msg):
        'prints the msg if debug mode .'
        if not self.__isDebug:
            return
        print 'JDebug , msg :%s' %msg
        
    def addType(self,item):
        'add the oper type .'
        self.__doType =self.__doType.__add__((item,))
        
    def __init__(self,path,s='mrjeye',isDebug=False):
        if not os.path.exists(path):
            raise IOError('path %s is not exists !' %path)
        self.__dir = path
        self.__appendStr = s        #the string what user want to append
        self.__isDebug = isDebug
        
    def append(self):
        'begin to enum and try append data .'
        self.enum(self.__dir)
        
    def enum(self,_path):
        'Enum files in _path .'
        items = os.listdir(_path)
        for item in items:
            _npath = path.join(_path,item)
            if path.isfile (_npath):
                self.debug('enum a fiile :%s' % _npath)
                if self.isNoDo(_npath):
                    continue
                self.doAppend(_npath)
            elif path.isdir (_npath):
                self.debug('enum a dir :%s' % _npath)
                self.enum(_npath)
                
    def doAppend(self,f):
        'append str to a file .'
        try:
            _file = file(f,'a');
            #lines = _file.readlines()
            #for line in lines:
            _file.write(self.__appendStr)
            _file.close()
            self.debug('append to %s success !' %f)
        except IOError , e:
            self.debug( 'error to append file , msg :%s' %e)
            
    def isNoDo(self,f):
        'check the file .'
        ft = self.getFileType(f)
        self.debug(ft)
        for item in self.__doType:
            if ft == item:
                return False
        return True
    
    def getFileType(self,f):
        ret =''
        for i in range(len(f)):
            if f[i] =='.':
                ret = f[i+1:]
        return ret
    
if __name__ == '__main__':
    vo = VersionOper('c:\\1','test append',True)
    #append two file type to the oper object
    vo.addType('txt')
    vo.addType('log')
    
    vo.append()

分享到:
评论

相关推荐

    MFC windows 枚举磁盘文件 递归

    在枚举磁盘文件的过程中,`CString`常用于构建路径字符串,存储文件或目录名。 接下来,`CFileFinder`是MFC中用于文件查找的类,它基于Windows API的`FindFirstFile`、`FindNextFile`函数。使用`CFileFinder`可以...

    易语言黑月枚举文件例程_带进度显示-易语言

    在"易语言黑月枚举文件例程_带进度显示"这个项目中,我们主要探讨的是如何在易语言中实现文件枚举操作,并且在这个过程中加入进度显示的功能,这对于用户界面的友好性和用户体验提升有很大帮助。 1. **文件枚举**:...

    根据关键词提取文本

    这通常通过递归函数完成,利用Windows API函数如`FindFirstFile`、`FindNextFile`和`FindClose`来枚举文件。对于每个文件,程序需要打开文件并读取其内容,这可能涉及`CreateFile`、`ReadFile`和`CloseHandle`等API...

    如何编写批处理文件批处理文件批处理文件

    参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) 如if "%1"=="a" format a: if {%1}=={} goto noparms if {%2}=={} goto noparms 2、if exist 文件名 待执行的命令 如果有...

    javascript文档

    encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时...

    cjson.c cjson.h

    CJSON 是一个轻量级的 JSON 解析器和生成器,主要用 C 语言编写,适用于嵌入式系统和资源有限...在实际项目中,将 `cjson.c` 和 `cJSON.h` 文件加入到工程中,即可直接使用其提供的 API,实现高效且简洁的 JSON 处理。

    Visual C++ 2005入门经典--源代码及课后练习答案

    4.1.4 字符数组和字符串处理 147 4.1.5 多维数组 150 4.2 间接数据存取 153 4.2.1 指针的概念 153 4.2.2 声明指针 154 4.2.3 使用指针 155 4.2.4 初始化指针 157 4.2.5 sizeof运算符 162 4.2.6 ...

    JScript 语言参考

    encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时...

    微软JavaScript手册

    encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时...

    第五届蓝桥杯本科B组答案

    - 计算该数字后剩余部分的“级别”(通过比较特定的字符串序列来确定)。 - 输出最终处理后的结果。 #### 关键知识点 1. **字符串操作**:使用 `strcpy`、`strcmp` 等标准库函数来处理字符串。 2. **模运算**:通过...

    c语言、ubuntu,脚本基础知识整理

    - **查找字符串**: `grep` 命令用于在文件中搜索特定的字符串。 - **find**: `find` 命令用于查找文件系统中的文件。 - **裁剪**: `cut` 命令用于从文件中裁剪出部分数据。 - **文件比较差异**: `diff` 命令用于比较...

    我整理的VBA 自定义函数大全 共138页

    30.查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到。 31.增加文件路径最后的“\”符号 32.计算所得税 33.从工作表第一行的标题文字以数字形式返回所在列号 34....

    MTK移植文档模板希望能帮到大家

    - **字符串和资源ID号定义**:修改`MMIDataType.h`文件,加入GMOK相关的宏定义,用于标识和分配GMOK服务的资源ID范围。 - **增加字符串和图标资源**: - 更新`PopulateRes.h`和`PopulateRes.c`文件,引入GMOK的...

    windowsAPI函数

    - `EnumFontFamilies`和`EnumFontFamiliesEx`主要用于枚举特定设备上下文中可用的字体家族。 - `EnumFonts`则枚举所有可用的字体。 - **参数**: - `hdc`:设备上下文。 - `lpelf`:字体家族枚举结构。 - `...

    把资源编译进EXE之(二)打造定制的资源编译器 工程包

    这些函数通常涉及到文件操作、XML解析和字符串处理等技术。 资源文件.qrc的解析可能需要用到如TinyXML或pugixml这样的轻量级XML解析库。解析后,我们需要生成一个包含资源映射的C++类,这个类将在运行时负责加载和...

    阿里编码规范

    - 所有其他字符串中的空白字符均需进行转义处理。 - 制表符不可用于缩进。 - **2.3.2 特殊转义序列**:对于有特殊转义序列的字符(如\b,\t,\n,\f,\r,\",\',\\), 应使用其转义序列,而非相应的八进制或Unicode转义...

    微软、谷歌、百度等公司经典面试100题[第101-170题].pdf

    - **题目描述**:实现类似于`malloc()`的功能以及复制两个字符串,其中一个字符串的部分内容与另一个字符串重叠。 - **解决方案** - **内存分配函数**:可以使用标准库中的`malloc()`函数作为参考,通过调用系统API...

    Beginning Java 7 - Code from the Book

    4. **字符串改进**:字符串拼接性能得到优化,`StringBuilder`和`StringBuffer`在并发情况下更高效。此外,`String`类新增了`isBlank()`方法,用于判断字符串是否为空或只包含空白字符。 5. **文件系统API**:Java ...

Global site tag (gtag.js) - Google Analytics