Login
芋圆社区 > 编程 > Python > 获取项目所有中文行

获取项目所有中文行

588
0
2024-02-21
2024-02-21
Hey、小怪兽

  • • 由于需求需要,需要找出项目所有的中文行,进行国际化或者进行其他操作,这里就特地写了个小工具(注释则不统计)
  • - 将代码写到一个 .py 结尾的文件里,放到项目根目录下
  • - 修改 out_name 为想要的输出文件名(默认为chinese_时间戳)
  • - 修改 dir_path 为想要遍历的文件夹
  • - 需要修改文件类型(默认只统计 .js 结尾的),不然文件就在 other_file_list 这个变量里
  • - 终端运行 python3 chinese.py 或 python chinese.py 即可
  • import os
    import re
    import time
    
    # 用来给输出文件命名
    out_name = "chinese"
    # 项目路径
    dir_path = "./src"
    # 存放文件的数组
    file_list = []
    # 其他文件数组
    other_file_list = []
    # 定义一个包含中文的正则表达式
    zh_pattern = re.compile(u'[\u4e00-\u9fa5]')
    # 获取当前时间戳
    now = int(time.time())
    
    # 递归获取遍历的文件
    def traverse(path):
      for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isdir(file_path):
          traverse(file_path)
        # 只统计js文件 后端如果使用的话可以自己选择文件类型
        elif os.path.isfile(file_path) and file.endswith(".js"):
          file_list.append(file_path)
        else:
          other_file_list.append(file_path)
    
    # 获取中文
    def getChineseFunc():
      with open(f"{out_name}_{now}.txt", "w", encoding="utf-8") as f:
        for path in file_list:
          # 打开文件并逐行读取内容
          with open(path, "r+", encoding="utf-8") as file:
            lines = file.readlines()
            for i in range(len(lines)):
              # 如果是中文列表里的内容
              if zh_pattern.search(lines[i]):
                # 如果是 /* // {/* * 开头的就pass,说明是注释
                if lines[i].strip().startswith("/*") or lines[i].strip().startswith("//") or lines[i].strip().startswith("{/*") or lines[i].strip().startswith("*"):
                  pass
                else:
                  # 将结果写入文件
                  f.write(lines[i].strip() + "\n")
    
    traverse(dir_path)
    getChineseFunc()
    print("获取项目中文成功")

上一篇:生成国际化翻译Key

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

Excel生成SQL

生成国际化翻译Key

获取项目所有中文行

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点