#!/bin/python #coding=gbk import sys,os,time,re def walk_dir(dir): timenow = time.time() ncntnum = 0 for root, dirs, files in os.walk(dir, True): for name in files: filename = os.path.join(root,name) mat = re.search('[.](h|cpp|c|hpp)',filename) if mat: filechgtime = os.path.getmtime(filename) if filechgtime > timenow: os.utime(filename,(timenow,timenow)) print '已修改:',filename ncntnum += 1 print '修改数:',ncntnum if __name__ == '__main__': if len(sys.argv) < 2: print '添加参数:目录' else: walk_dir(sys.argv[1])
文件名为chgFileTM.py,直接拷贝为chgFileTM.pyx,将pyx文件修改以下:python
#!/bin/python #coding=gbk import os,time,re def walk_dir(dir): timenow = time.time() ncntnum = 0 for root, dirs, files in os.walk(dir, True): for name in files: filename = os.path.join(root,name) mat = re.search('[.](h|cpp|c|hpp)',filename) if mat: filechgtime = os.path.getmtime(filename) if filechgtime > timenow: os.utime(filename,(timenow,timenow)) print '已修改:',filename ncntnum += 1 print '修改数:',ncntnum cdef public void c_walk_dir(char* pfir): try: walk_dir(pfir) except Exception , e: print e
确认python安装了pyrexcdef extern void (c_walk_dir(char* pfir))linux
#include "chgFileTM.h" #include <iostream> #include "Python.h" #include "structmember.h" int main(int argc, char *argv[]) { if(argc <= 1) { std::cout<<"参数:目录"<<std::endl; return 1; } try { Py_Initialize(); initchgFileTM(); // 这个地方的函数名字为init加上模块名,就是原来那个py文件的名字 c_walk_dir(argv[1]); Py_Finalize(); } catch(...) { std::cout<<"有异常"<<std::endl; } return 0; }
#!D:/GNU/MSYS/bin/sh.exe #edit cmake if [ $# != 1 ] ; then echo "USAGE: cmake.sh proj" exit 1; fi makefilelist=CMakeLists.txt PROJECT_NAME=$1 FILE_NAME=`ls *.[ch]*` rm -f $makefilelist #工程设置 echo -e 'PROJECT(' $PROJECT_NAME ')' '\n' >> $makefilelist #不用修改设置 echo -e 'SET(VC9_DIR $ENV{VC9_DIR})' '\n'\ 'SET(PYTHON_DIR $ENV{PYTHON_DIR})' '\n'\ 'SET(CMAKE_C_COMPILER "${VC9_DIR}/bin/cl.exe")' '\n'\ 'SET(CMAKE_CXX_COMPILER "${VC9_DIR}/bin/cl.exe")' '\n'\ 'SET(LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}")' '\n'\ 'include_directories ("${PYTHON_DIR}/include" )' '\n'\ 'link_directories ("${PYTHON_DIR}/libs" "${PYTHON_DIR}/Lib" )' '\n' >> $makefilelist #库和exe设置 echo -e 'add_executable('$PROJECT_NAME $FILE_NAME') \n' >> $makefilelist #执行脚本 rm -fr build mkdir build cd build echo 'start cmake' cmake -G "Visual Studio 9 2008" .. echo 'start build' echo -e BuildConsole.exe $PROJECT_NAME /build /cfg=\"Release\|Win32\" '\n'\ rm -f ../$PROJECT_NAME.exe '\n'\ cp Release/$PROJECT_NAME.exe ../$PROJECT_NAME.exe '\n'\ pause '\n'\ exit > build.bat start build.bat cd .. #删除脚本 rm -f $makefilelist