Life & Code

代码是咒语,我是魔法师

把头文件全部导出的脚本

 

# -*- coding: cp936 -*-
import re
from   os.path  import dirname
import shutil
import os
pattern 
= '^#\s*include\s+(<)(.+)(>)(.*)$'
prog    
= re.compile(pattern)
find_sets 
= []


def create_dir(file_dir):
    
#print dirname(_dir);
    _dir = dirname(file_dir)
    
if not os.path.exists(_dir):
        os.makedirs(_dir)

def copyHeadFile(root_dir, src_path, des_path, deep = 0):
    
if((root_dir + src_path) in find_sets): 
        
return
    
ifnot os.path.exists(root_dir + src_path) ):
        
return
    
    create_dir(des_path 
+ src_path)    
    shutil.copyfile(root_dir 
+ src_path, des_path + src_path);
    find_sets.append(root_dir 
+ src_path)
    
    src_file 
= open(root_dir + src_path, 'r')
    
print ''.rjust(deep) + des_path + src_path
    
for line in src_file:
        
if  prog.search(line):
            line 
= re.sub('(^#\s*include\s+(<))|(>)(.*)$''', line)
            line 
= line.replace('/''\\')
            line 
= line.rstrip('\n')
            copyHeadFile( root_dir, line, des_path, (deep 
+ 4))
        
copyHeadFile(
"D:\\Program Files\\Microsoft Visual Studio 8\\VC\\include\\""stdafx.h""d:\\need_hpp\\" )


Python偶而玩玩也很爽。 这个脚本的来例:我写的demo用到了不少boost的东西,代码交给领导检查的时候,又不能把整个boost 都拷贝给他,这个脚本能把引用到的头文件导出到指定的目录里面。

posted on 2008-02-19 22:06 橙子 阅读(442) 评论(4)  编辑 收藏 引用

评论

# re: 把头文件全部导出的脚本 2008-02-20 09:36 金庆

还是统一开发环境为上。  回复  更多评论   

# re: 把头文件全部导出的脚本 2008-02-20 19:08 空明流转

装个boost并不麻烦啊。  回复  更多评论   

# re: 把头文件全部导出的脚本 2008-02-20 19:19 橙子

@金庆
那是那是  回复  更多评论   

# re: 把头文件全部导出的脚本 2008-02-20 19:19 橙子

@空明流转
呵。 好久不见。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

导航

统计

常用链接

留言簿(10)

随笔分类

随笔档案

相册

收藏夹

搜索

最新评论

阅读排行榜