python 递归遍历并处理路径下文件

#!/usr/bin/python
import os
import sys
import shutil
tmp_path = "struct"#临时文件夹,执行本脚本前随意创建
path_to_process = sys.argv[1]#需要批量修改的源文件所在路径,
def traverse_process(path):
  if not os.path.exists(path):
    print("No Such Path: " + path)
    return
  if os.path.isfile(path):
    print("to replace: " + path)
    tmp_output_file = os.path.join(tmp_path,"tmp_" + os.path.basename(path))
    print("tmp file: " + tmp_output_file)
    if os.path.exists(tmp_output_file):
      os.remove(tmp_output_file)
    output = open(tmp_output_file, 'w')
    with open(path,'r') as f:
      # irow = 0
      for line in f.readlines():
        # irow = irow + 1
        # if "#ifndef" in line and irow == 1:
        #   output.write('#ifndef _'+each_proto_file.replace('.','_').upper()+'_\n')
        # elif "#define" in line and irow == 2: 
        #   output.write('#define _'+each_proto_file.replace('.','_').upper()+'_\n')
        # elif 'void CopyFrom(const ' in line and 'void CopyFrom(const _' not in line:
        #   output.write(line.replace('void CopyFrom(const ','void CopyFrom(const _')+'\n')
        if line.strip().split(' ')[0] == 'const' and line.split(' ').count('const') == 1:
          print('old ***' + line)
          output.write(line.replace(') {',') const {')+'\n')
          print('new ***' + line.replace(') {',') const {'))
        else:
          output.write(line)
    f.close()
    output.close()
    print(tmp_output_file + '->' + path)
    # shutil.move(tmp_output_file,path) #struct 下临时文件覆盖源文件
  else:
    print("folder: "+os.path.basename(path))
    for sub_names in os.listdir(path):
      traverse_process(os.path.join(path,sub_names))
    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值