#!/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