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()
分享到:
相关推荐
在枚举磁盘文件的过程中,`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 文件名 待执行的命令 如果有...
encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时...
CJSON 是一个轻量级的 JSON 解析器和生成器,主要用 C 语言编写,适用于嵌入式系统和资源有限...在实际项目中,将 `cjson.c` 和 `cJSON.h` 文件加入到工程中,即可直接使用其提供的 API,实现高效且简洁的 JSON 处理。
encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时...
encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较两个表达式,看是否相等。 Error 对象 包含在运行 JScript 代码时...
- 计算该数字后剩余部分的“级别”(通过比较特定的字符串序列来确定)。 - 输出最终处理后的结果。 #### 关键知识点 1. **字符串操作**:使用 `strcpy`、`strcmp` 等标准库函数来处理字符串。 2. **模运算**:通过...
- **查找字符串**: `grep` 命令用于在文件中搜索特定的字符串。 - **find**: `find` 命令用于查找文件系统中的文件。 - **裁剪**: `cut` 命令用于从文件中裁剪出部分数据。 - **文件比较差异**: `diff` 命令用于比较...
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 ...
30.查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到。 31.增加文件路径最后的“\”符号 32.计算所得税 33.从工作表第一行的标题文字以数字形式返回所在列号 34....
- **字符串和资源ID号定义**:修改`MMIDataType.h`文件,加入GMOK相关的宏定义,用于标识和分配GMOK服务的资源ID范围。 - **增加字符串和图标资源**: - 更新`PopulateRes.h`和`PopulateRes.c`文件,引入GMOK的...
- `EnumFontFamilies`和`EnumFontFamiliesEx`主要用于枚举特定设备上下文中可用的字体家族。 - `EnumFonts`则枚举所有可用的字体。 - **参数**: - `hdc`:设备上下文。 - `lpelf`:字体家族枚举结构。 - `...
这些函数通常涉及到文件操作、XML解析和字符串处理等技术。 资源文件.qrc的解析可能需要用到如TinyXML或pugixml这样的轻量级XML解析库。解析后,我们需要生成一个包含资源映射的C++类,这个类将在运行时负责加载和...
- 所有其他字符串中的空白字符均需进行转义处理。 - 制表符不可用于缩进。 - **2.3.2 特殊转义序列**:对于有特殊转义序列的字符(如\b,\t,\n,\f,\r,\",\',\\), 应使用其转义序列,而非相应的八进制或Unicode转义...
- **题目描述**:实现类似于`malloc()`的功能以及复制两个字符串,其中一个字符串的部分内容与另一个字符串重叠。 - **解决方案** - **内存分配函数**:可以使用标准库中的`malloc()`函数作为参考,通过调用系统API...
4. **字符串改进**:字符串拼接性能得到优化,`StringBuilder`和`StringBuffer`在并发情况下更高效。此外,`String`类新增了`isBlank()`方法,用于判断字符串是否为空或只包含空白字符。 5. **文件系统API**:Java ...