Python学习41:文本分析(1)——统计文件中的字符

news2024/11/22 9:07:27

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

open(name[, mode[, buffering]])函数可以打开诸如txt,csv等格式的文件。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

如下定义file_read()函数:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

def read_file(file):
    """接收文件名为参数,读取文件中的数据到字符串中,返回字符串"""
    with open(file, 'r', encoding='utf-8') as text:  # 创建文件对象
        txt =text.read()      # 读文件为字符串
    return txt     # 返回字符串

上面的函数read_file(file)可以读取名为file的文件内容,以字符串形式返回txt,请继续编程统计字符串txt中大写字母、小写字母、数字、空格和其它字符的数量。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

提示:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

ch.isupper()函数判断字符ch是否为大写字母,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

ch.islower()函数判断字符ch是否为小写字母,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

ch.isdigit()函数判断字符ch是否为数字,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

ch.isspace()函数判断字符ch是否为空白字符,包括空格,制表符,换行符,回车符,垂直制表符等,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

判断空格可用是否为空格字符串' '‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

使用upper,lower,digit,space,other五个变量代表不同种类的字符个数,设定初值为0,在循环过程中按照判断结果进行累加。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

函数返回时使用return upper, lower, digit, space, other语句,返回值为元组类型。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入为一行,是一个文本文件名,如example1.txt。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输出为一行,是对名为example1.txt文件的内容进行分类统计后的结果, 输出形如:“ 大写字母m个,小写字母n个,数字o个,空格p个,其他q个 ”,具体格式见示例。

 

 

import string

def read_file(file):
    """接收文件名为参数,读取文件中的数据到字符串中,返回这个字符串"""
    with open(file, 'r', encoding='utf-8') as f:
        return f.read()

def classify_char(txt):
    """接收字符串为参数,依序返回大写字母、小写字母、数字、空格、和其他字符数量"""
    upper, lower, digit, space, other = 0, 0, 0, 0, 0
    for c in text:
        if c.isupper():
            upper+=1
        elif c.islower():
            lower+=1
        elif c.isdigit():
            digit+=1
        elif c==" ":
            space+=1
        else:
            other+=1

    return upper, lower, digit, space, other

if __name__ == '__main__':
    filename = input()              # 读入文件名
    text = read_file(filename)      # 调用函数读文件中的内容为字符串
    classify = classify_char(text)  # 调用函数分类统计字符数量
    print('大写字母{}个,小写字母{}个,数字{}个,空格{}个,其他{}个'.format(*classify))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/614495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL了解之复制(一)

1.1、复制解决的问题 数据复制技术有以下一些特点: (1) 数据分布 (2) 负载平衡(load balancing) (3) 备份 (4) 高可用性(high availability)和容错 1.2、复制如何工作 从高层来看,复制分成三步: (1) master将改变记录到二进制…

第二十六章 开发Productions - ObjectScript Productions - 定义业务流程

文章目录 第二十六章 开发Productions - ObjectScript Productions - 定义业务流程介绍业务逻辑工具的比较 第二十六章 开发Productions - ObjectScript Productions - 定义业务流程 业务流程负责生产中的更高级别处理。本页介绍它们并讨论如何设计和开发业务流程类。 介绍 …

三分钟快速了解什么是MES系统

近年来在制造业的推动下,大家是否会经常听到MES系统这一词,但是对于其具体能解决什么问题却不是很清晰。接下来,请允许我用一个简单的故事来让大家快速地了解一下到底什么是MES系统以及MES系统能够解决什么问题。本文仅限于科普,没…

STM32F103xx 的USART1 移植到STM32F105RBT6

1. STM32F103 和 STM32F105 的时钟配置区别&#xff0c;STM32F105 默认使用的外部晶振是25Mhz&#xff0c;需要改成8Mhz stm32f10x.h #if !defined HSE_VALUE#ifdef STM32F10X_CL#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz …

初学Mybatis

1、Mybatis概述 Mybatis基于java的持久层框架&#xff0c;内部封装了JDBC&#xff0c;开发者只需要关注SQL语句 特点 1、sql语句在xml里&#xff0c;便于统一管理和优化 2、解除sql与程序代码耦合&#xff1a;通过DAO层&#xff0c;将业务逻辑和数据访问逻辑分离 提供映射标签&…

Spark简介和三种部署方式

1.Spark简介 1.1 Spark介绍 开源集群计算系统&#xff0c;致力于更快的处理数据 Both fast to run and fast to wrtie Spark 是专为大规模数据处理而设计的快速通用的计算引擎 Spark 可以完成各种运算&#xff0c;包括 SQL 查询、文本处理、机器学习等 Spark由Scala语言开发&a…

【618期间】超过200小时的课程全都有优惠,全年最好的加入有三AI学习的时间来了~...

正值2023年618期间&#xff0c;既然是全民购物节&#xff0c;有三AI所有付费的视频课程开启优惠活动&#xff0c;即日起至节日结束&#xff08;6月18日晚23:59&#xff09;。 当前已有课程包括数据使用/模型分析/图像分类/图像分割/目标检测/图像生成/图像翻译/图像增强/视频分…

Promise.allSettled使用

1、const apiList await Promise.allSettled([systemApi]).then((result: any) > { if (result[0].status fulfilled) { console.log(result[0].value) return result[0].value.data } }) console.log(apiList, apiList) 2、 const systemApi new Promise((resolve, rej…

Selenium Webdriver原理、架构过往今生

下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 简介 Selenium是一种流行的自动化测试工具…

[深度学习入门案例2]基于卷积神经网络与Keras构建人脸识别模型

文章目录 一、工具与环境 二、深度学习环境的搭建 三、基于卷积神经网络人脸识别模型的构建与测试 1.核心代码 第一步&#xff1a;采集自己和他人的人脸特征数据&#xff0c;分别对应数据标签0和1 第二步&#xff1a;训练识别人脸特征的模型&#xff0c;并将模型保存为.h5…

网络排障全景指南手册v1.0pdf 全网发布

大家好&#xff0c;这里是极客重生&#xff0c;我是大师兄&#xff0c;我把之前关于丢包排障文章整理了一下&#xff0c;形成一个网络丢包排障手册pdf文档 &#xff0c;希望可以帮助大家快速排障网络问题。 当前版本主要针对是服务端网络问题排障&#xff0c;包括网卡&#xff…

怎么将文件转为扫描件

推荐两个工具&#xff0c;也算是给自己记一下 1、手机&#xff1a;扫描全能王APP 太好使了&#xff0c;可以直接拍照并转换为扫描件 不开会员的话会出现水印&#xff0c;因为我都是自己用或者交作业就没开 支持读取相册&#xff0c;一次一张、多张都可以 如果不想要水印也…

chatgpt赋能python:Python制图:让数据图像化

Python制图&#xff1a;让数据图像化 数据可视化是近年来越来越流行的技术&#xff0c;其能够将大量的数字和信息变成直观有趣的图形。Python是一个广泛使用的编程语言&#xff0c;也是制图利器。Python的绘图库非常丰富&#xff0c;包括流行的Matplotlib、Seaborn和Plotly等&…

进程的控制

文章目录 1. Linux线程创建和等待2. 线程ID3. 线程的局部存储4. 分离线程 1. Linux线程创建和等待 这是前面写过的创建线程的代码&#xff0c;现在我们把线程的ID打印看一下&#xff1a; 我们可以看到线程的id特别大&#xff0c;这是为什么呢&#xff1f;我们后面再说。 如果…

一文简介Spring的IOC和AOP

1、IOC 概念&#xff1a;所谓控制反转&#xff0c;就是把原先我们代码里面需要实现的对象创建、依赖的代码&#xff0c;反转给容器来帮忙实现。当应用了IoC&#xff0c;一个对象依赖的其它对象会通过被动的方式传递进来&#xff0c;而不是这个对象自己创建或者查找依赖对象。 …

飞桨AI Day落地澳门高校!助力大湾区打造产教融合新范式

为了推动大湾区建设产教融合的人工智能技术生态&#xff0c;加快培养助力社会经济高质量发展的复合型 AI 人才&#xff0c;飞桨校园 AI Day 登陆澳门&#xff0c;开展《AI 技术发展趋势与人才培养》主题讲座 &#xff0c;邀请多位澳门科技大学及百度嘉宾&#xff0c;解读当下AI…

【中兴ZXV10 B860A1.1】

这里写自定义目录标题 开启adb开启adb 部分盒子的ADB调试位置,在设置页面中可以有开启开发者选项。地区界面不同,位置不同有的在设置里。 如果找不到,直接按住遥控器【返回】不放,5秒后,快速不停按【左键】。 点击【打开ADB调试】这时侯让你输入密码 下载zikaikeji.ap…

chatgpt赋能python:Python如何创建集合——你必须知道的所有知识

Python 如何创建集合——你必须知道的所有知识 作为一位有10年 Python 编程经验的工程师&#xff0c;我可以告诉你&#xff0c;Python 集合是编程中非常重要的一部分。如果你不知道如何创建集合&#xff0c;那么你可能会错过很多东西。所以&#xff0c;让我们深入探讨 Python …

提供一个使用Npoi生成excel文档的例子,应能帮助到各位使用Npoi的朋友,因为具有多种情形处理

提供一个使用Npoi生成excel文档的例子&#xff0c;应能帮助到各位使用Npoi的朋友&#xff0c;因为具有多种情形处理 照例&#xff0c;文章开始之前&#xff0c;先看下最终效果&#xff1a; 实现的需求点如下&#xff1a; 1.第一行大标题加了背景色&#xff0c;且这个背景色&…

解密 JS 参数:逆向工程的实用技巧

大家好&#xff0c;我是安果&#xff01; 大部分网站都会对关键参数进行加密&#xff0c;JS 逆向时&#xff0c;我们首要任务是定位参数具体的加密逻辑 常见方式包含&#xff1a;关键字搜索、堆栈调试、XHR 及事件监听、AST 内存漫游、JS Hook 注入等 本篇文章以 JS Hook 注入定…