Python实用脚本:统计TXT文件字数

最近在用金山打字通练习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}个汉字。")

效果:
在这里插入图片描述

正常运行。

帖子写得比较粗糙,欢迎各位批评指正,有问题也可留言,看见会第一时间回复。
我自己也还在用这个统计字数脚本。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值