最近在用金山打字通练习98版的五笔输入法,想知道自己找的文章大概有多少个字数。因为txt文件打开看不了总字数,就复制后放在word看字数。感觉实在是麻烦,就找个了Python脚本来算字数,还能统计总共练习了多少个字
【txt内容要转换成ANSI编码才能用】
【我是选择从命令台执行,因为快一点】
要先进入文件的位置,再调用函数
统计单个文件字符数的代码:
"""
统计指定文件的个数。cmd命令台中输入如下命令
python getArticleChars.py "01. 梦中情人.txt"
"""
from sys import argv
import re
# 统计中文字数
def statistics_cn(file_name):
with open(file_name, 'r') as f:
list_f = [line.strip('\n') for line in f]
cols=[] # 创建一个空的列表
for line in list_f:
"""
用正则表达式进行切片。
空格,中英状态下的句号,冒号,逗号,[],{}都不统计。
如何有其他的字符不想统计,加在里面即可,特殊字符可能需要在前面加转义符号'\'
"""
list_split = re.split(r'[ ,.,。::\[\]【】{}{}]', line)
list_str = ''.join(list_split) #
cols.append(list_str)
return '文件中有{}个汉字'.format(len(''.join(cols)))
# 统计字符数
def statistics(file_name):
with open(file_name, 'r') as f:
list_f = [line.strip('\n') for line in f]
cols=[] # 创建一个空的列表
for line in list_f:
list_split = line.split() # 对列表进行切片
list_str = ''.join(list_split) #
cols.append(list_str)
return '文件中的字符个数为:{}'.format(len(''.join(cols)))
def TryOut():
print("getAriticles.try()")
if __name__ == '__main__':
file_name = argv[1]
#file_name = r'04. 俞敏洪新年祝词.txt'
print(file_name, statistics(file_name))
print(file_name, statistics_cn(file_name))
效果如下:
【统计当前文件夹下所有文件的字符数】
代码如下:
import os,re
path = os.getcwd() # 当前的路径
files = os.listdir(path) # 显示当前路径下的所有文件名字
# 根据自己情况进行选择文件
FILES = files[:59] # 切片操作,因为我的文件夹下还有其他文件
def statistics_cn(file_name):
with open(file_name, 'r') as f:
list_f = [line.strip('\n') for line in f]
cols=[] # 创建一个空的列表
for line in list_f:
"""
用正则表达式进行切片。
空格,中英状态下的句号,冒号,逗号,[],{}都不统计。
如何有其他的字符不想统计,加在里面即可,特殊字符可能需要在前面加转义符号'\'
"""
list_split = re.split(r'[ ,.,。::\[\]【】{}{}]', line)
list_str = ''.join(list_split) #
cols.append(list_str)
return len(''.join(cols))
def statistics(file_name):
with open(file_name, 'r') as f:
list_f = [line.strip('\n') for line in f]
cols=[] # 创建一个空的列表
for line in list_f:
list_split = line.split() # 对列表进行切片
list_str = ''.join(list_split) #
cols.append(list_str)
return len(''.join(cols))
total = 0
for F in FILES:
total = total + statistics(F)
total_cn = 0
for F in FILES:
total_cn = total_cn + statistics_cn(F)
print(f"在目录{path}中,{len(FILES)}个文件有{total}个字符,包括标点符号。")
print(f"在目录{path}中,{len(FILES)}个文件有{total_cn}个汉字。")
效果:
正常运行。
帖子写得比较粗糙,欢迎各位批评指正,有问题也可留言,看见会第一时间回复。
我自己也还在用这个统计字数脚本。