Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
文件
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
统计.ul 1.94 KB
Copy Edit Raw Blame History
吴烜 authored 2021-08-20 00:46 . 排除 bytes 类型; 更多容错
using ast, re
using 语法树相关 in 语法树遍历
using * in 常量
func 读文件(文件名) {
try f=open(文件名, 'r', encoding='utf-8') {
return f.read()
}
}
func 带中文(标识符) {
return re.search('[\u4e00-\u9fa5]', 标识符) != nil
}
func 取标识符(源码文本) {
// println(语法树相关.格式化节点(ast.parse(源码文本), 1))
return 语法树相关.取所有标识符(ast.parse(源码文本))
}
所有标识符 = []
for 完整路径 in 目标路径.is_dir() ? list(目标路径.glob('**/*.py')) : [目标路径] {
try {
所有标识符 += 取标识符(读文件(完整路径))
} catch e : SyntaxError {
println("有语法错误:" + str(完整路径))
}
}
中文标识符 = list(filter(带中文, 所有标识符))
英文标识符 = list(filter(名称 -> !带中文(名称), 所有标识符))
排除无法中文化 = list(filter(名称 -> !无法中文化.__contains__(名称), 所有标识符))
if 所有标识符 {
println("中文标识符比例:" + str(round(#中文标识符 * 100.0 / #所有标识符, 1)) + "%")
println("排除无法中文化的如 len:" + str(round(#中文标识符 * 100.0 / #排除无法中文化, 1)) + "%")
}
标识符个数 = {:}
for 标识符 in 英文标识符 {
if !标识符个数.__contains__(标识符) {
标识符个数[标识符] = 1
} else {
标识符个数[标识符] = 标识符个数[标识符] + 1
}
}
英文标识符集合 = list(set(filter(名称 -> !无法中文化.__contains__(名称), 英文标识符)))
英文标识符集合.sort(key=标识符 -> -标识符个数[标识符])
println('`#英文标识符集合` 个名称待中文化,按词频排列:')
for 标识符 in 英文标识符集合 {
println('`标识符个数[标识符]` `标识符`,') if !无法中文化.__contains__(标识符) and 标识符个数[标识符] > 9
}
println('`#所有标识符` 个标识符,`#中文标识符` 个中文化的,`#英文标识符` 个英文的')
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化