• 一个删除文件夹中源代码中文本中指定内容的脚本


    有时可能会遇到这么一种情况,项目的文件夹中嵌套文件夹,我们的源代码按模块分布在不同层级的文件目录里

    每个文件里都有相同的内容。我们想去掉这些信息,或者添加一些信息。

    我们该怎么样做呢?

    python可以很方便的帮我们实现

    批量删除重复内容的思路:

    step1、获取根目录下所有文件的路径

    step2、针对每一文件的路径,读出文件内容。

    step3、新建一个读操作和一个写操作。

    step4、读操作分行读取数据,写操作根据读操作的各行信息判断是否要删除该行,写入文件。

     1 #!usr/lib/env python3
     2 #coding=utf-8
     3 import codecs  
     4 import os, shutil
     5 #str 保证路径中有中文也能被正确读取
     6 root_path = str("/xxx/files")
     7 files = []
     8 def list_file(path):
     9     print("find all file pathes")
    10     for parent, dirnames, filenames in os.walk(path):
    11         for filename in filenames:
    12             if filename.endswith('.cpp') or filename.endswith('.h') :
    13                 file_path = os.path.join(parent, filename)
    14                 print("文件名 : %s" % filename)
    15                 print("完整路径 : %s
    " % file_path )
    16                 files.append(file_path)
    17     return files
    18 def delete_lines_in_file(path):
    19     #codecs.open 比open好用的地方在于 打开文件 不会包编码错误
    20     with codecs.open(path,'r',encoding= 'utf-8') as f:
    21         lines = f.readlines()
    22         # print(lines)
    23     with codecs.open(path,'w',encoding = 'utf-8') as f_w:
    24         for line in lines:
    25             print(" line %s" % line)
    26             if  "some thing appear in every file"  in line:
    27                 print("delete line %s" % line)
    28                 continue
    29             else:
    30                 f_w.write(line)
    31 
    32 if __name__ == '__main__':
    33     print("start...")
    34     files = list_file(root_path)
    35     for file in files:
    36         delete_lines_in_file(file)
    37     print("end...")

    批量增加待续。。。

  • 相关阅读:
    计算机中最重要的两个硬件是什么它们如何相互作用。
    音乐光盘
    下列各项包含多少位?
    下列包含多少字节?
    自测题‘
    自测题.
    python 并发编程多线程之进程池/线程池
    python 并发编程之多线程
    基于解决高并发生的产者消费者模型
    守护进程、互斥锁、进程间通信(IPC机制)
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/9212925.html
Copyright © 2020-2023  润新知