python递归遍历文件夹检查缺少DEBUG_NEW的CPP文件
3x版本的python使用print需要用括号打印字符串,如print(file_name)
import os
check_path = 'F:\\some_dir'
debug_str = '#define new DEBUG_NEW'
report_log = 'report_debug_new_check.log'
check_ext = '.cpp'
report_list = []
def check_file(fp):
if check_ext not in fp:
return
f = open(fp, 'r')
try:
all_text = f.read()
if debug_str not in all_text:
print fp
report_list.append(fp + '\n')
finally:
f.close()
def walk_dir(dirname):
try:
sub_items = os.listdir(dirname)
except:
print 'Access denied:', dirname
else:
for item in sub_items:
full_path = os.path.join(dirname, item)
if os.path.isdir(full_path):
walk_dir(full_path)
else:
check_file(full_path)
if __name__ == "__main__":
if os.path.isdir(check_path):
check_path += '\\'
walk_dir(check_path)
log_file = open(os.path.join(check_path, report_log), 'w')
try:
log_file.writelines(report_list)
finally:
log_file.close()