【python基础实例】从文件命名中提取特定信息(数字、字母等)

【python基础实例】从文件命名中提取特定信息(数字、字母等)

在处理文件和数据时,我们经常需要从文件名中提取特定的信息,如日期、序号或项目标识符。Python提供了强大的字符串处理功能,可以轻松完成这些任务。本文将通过一个基础实例,展示如何使用Python从复杂的文件命名中提取数字、字母等信息。
示例代码:

import os# 定义一个函数来处理文件名并提取信息
def extract_info_from_filename(filename):# 使用os.path.basename获取纯文件名base_name = os.path.basename(filename)# 分割文件名以提取信息parts = base_name.split('_')# 初始化一个字典来存储提取的信息info = {'project': '','year': '','month': '','type': '','number': '','theme': ''}# 假设文件名遵循特定的命名规则,例如 "projectname_year_month_type_number_theme.txt"if len(parts) >= 6:info['project'] = parts[0]info['year'] = parts[1]info['month'] = parts[2]info['type'] = parts[3]info['number'] = parts[4]info['theme'] = parts[5].split('.')[0]  # 去除文件扩展名return info# 示例文件路径
file_path = '/path/to/your/data/projectA_2024_01_report_001_analysis.txt'# 调用函数并打印结果
extracted_info = extract_info_from_filename(file_path)
print(extracted_info)

输出结果:

{'project': 'projectA','year': '2024','month': '01','type': 'report','number': '001','theme': 'analysis'
}

在这里插入图片描述

在上述代码中,我们首先定义了一个函数extract_info_from_filename,它接受一个文件路径作为参数。使用os.path.basename函数从路径中提取文件名,然后使用split方法按照下划线’_'分割文件名。我们假设文件名遵循一定的命名规则,例如 “projectname_year_month_type_number_theme.txt”。通过分割得到的列表,我们可以提取出项目名称、年份、月份、报告类型、序号和主题,并将这些信息存储在一个字典中返回。
在这里插入图片描述

这个基础实例展示了如何使用Python的字符串处理功能来提取文件名中的关键信息。你可以根据自己的需求调整代码,以适应不同的文件命名规则和信息提取需求。

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

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

相关文章

Python 学习 第二册 第12章 图形界面

----用教授的方法学习。 目录 12.1 创建 GUI 示例应用程序 12.1.1 初探 12.1.2 布局 12.1.3 事件处理 12.1.4 最终的程序 12.1 创建 GUI 示例应用程序 这个微型文本编辑器的需求如下。 让用户能够打开指定的文本文件。 让用户能够编辑文本文件。 让用户能够保存文本…

浪潮信息MUPR自研专利 保障服务器内存运行的可靠性和高效性

在数字化转型的大潮中,服务器作为支撑企业业务运行的核心设备,其稳定性和可靠性显得尤为重要。然而,传统的内存故障预警修复技术往往存在反应滞后、误报率高等问题,难以满足日益增长的数据处理和存储需求。针对这一问题&#xff0…

C++初学者指南第一步---4.基本类型

C初学者指南第一步—4.基本类型 文章目录 C初学者指南第一步---4.基本类型1.变量声明2.快速概览Booleans 布尔型Characters 字符型Signed Integers 有符号整数Unsigned Integers 无符号整数Floating Point Types 浮点数类型 3.Common Number Representations 常用的数字表示常用…

【数据结构】——常见排序

文章目录 一、 冒泡排序二、 选择排序三、插入排序四、 快速排序1. hoare版本2. 优化版本3. 前后指针法4. 非递归版本 五、 堆排序六、 希尔排序七、 归并排序1. 递归版本2. 非递归版本 八、 计数排序 在开始之前先准备一个交换数据的函数,排序会经常用到 //交换位置…

银河麒麟系统安装

新建虚拟机 选择典型下一步: 稍后安装操作系统 下一步 : 选择Linux Ubuntu 64位 下一步: 设置名称 选择一个虚拟机的位置进行下一步: 磁盘大小默认给20G 下一步: 点击完成 编辑虚拟机设置 点击CD/DVD(SATA) 使用IS…

Mysql数据库的锁机制

MySQL 中的锁可以按照粒度分为锁定整个表的表级锁(table-level locking)和锁定数据行的行级锁(row-level locking)表级锁开销小,加锁快,但是支持的并发度低,行级锁相反。 行锁 Innodb实现了以…

C#医院体检系统源码 PEIS源码 系统核心功能、特点、类型、设备对接-PACS放射科设备对接:DR、CT、MRI、钼靶。

C#医院体检系统源码 PEIS源码 系统核心功能、特点、类型、设备对接-PACS放射科设备对接:DR、CT、MRI、钼靶。 体检系统是为体检中心、医院体检科等体检机构专门开发的全流程管理系统。该系统通过软件实现检测仪器数据的自动提取,内置多级医生工作台,旨在…

每日一练:攻防世界:ewm

这道题我尝试了使用montagegaps解题,但是没有解出来,图片数量不是很多,可以尝试用PS直接拼图,但是这样学不到东西,我也就没尝试,直接看的官方WP 这段代码应该是改变工作目录到small,并且变量当…

基于springboot的宠物商城网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的宠物商城网站,java项目…

Linux C编译器从零开发二

自定义分词器 test.c #include <ctype.h> #include <stdarg.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h>typedef enum {TK_PUNCT, // PunctuatorsTK_NUM, // Numeric literalsTK_EOF, // …

基于carsim的线控转向仿真(1)--carsim车辆模型目标角度跟踪

一、Rwa转向执行总成建模 Rwa包括齿轮齿条机构、转向组件以及转向执行电机&#xff1b;如下图&#xff0c;电机输出轴通过齿轮减速增扭后&#xff0c;再经过一个半径为rp的小齿轮&#xff0c;直接带动齿条左右移动。齿条的移动通过转向摇臂&#xff0c;带动车轮转动&#xff0c…

PySide(PyQt)实现鼠标画框局部放大

按住鼠标左键画框&#xff0c;裁切画面并局部放大&#xff0c;可以用来生成ROI 1、在QtDesigner中创建ui文件&#xff0c;命名为crop.ui&#xff1a; 2、自定义脚本ImageLabel.py &#xff1a; from PySide6.QtCore import Qt, QRect, Signal, QPoint from PySide6.QtGui impo…

Redis高并发高可用

1. 复制机制 在分布式系统中&#xff0c;为了解决单点问题&#xff0c;通常会将数据复制多个副本部署到其他机器&#xff0c;以满足故障恢复和负载均衡等需求。Redis提供了复制功能&#xff0c;实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础&#xff0c;后面的…

长亭网络通信基础

长亭笔试之前就已经学过一遍了 这算温故而知新吧 TCP/IP 首先我在这里默写一下之前的7层和4层 应用层 应 【表示层 数据格式转换 传 【会话层 …

课设--学生成绩管理系统(一)

欢迎来到 Papicatch的博客 文章目录 &#x1f349;技术核心 &#x1f349;引言 &#x1f348;标识 &#x1f348;背景 &#x1f348;项目概述 &#x1f348; 文档概述 &#x1f349;可行性分析的前提 &#x1f348;项目的要求 &#x1f348;项目的目标 &#x1f348;…

Android 蓝牙配对Settings应用里面的简要流程记录

Android 蓝牙配对Settings应用里面的简要流程记录 文章目录 Android 蓝牙配对Settings应用里面的简要流程记录一、前言二、Settings蓝牙配对的关键代码1、接收蓝牙请求的地方 AndroidManifest.xml2、BluetoothPairingRequest3、BluetoothPairingService4、BluetoothPairingDial…

宿舍用电管理模块一进三出的升级改造

宿舍用电管理模块一进三出石家庄光大远通电气有限公司产品在高校日常管理工作中,宿舍管理是一项重要工作。宿舍管理内容复杂,而且涉及学生的日常生活,意义重大。其中,学生宿舍内漏电,超负荷用电,违规用电等现象一直是困扰后勤管理的普遍问题。随着学生日常生活方式以及生活用品…

驱动开发(五):Linux内核定时器

驱动开发系列文章&#xff1a; 驱动开发&#xff08;一&#xff09;&#xff1a;驱动代码的基本框架 驱动开发&#xff08;二&#xff09;&#xff1a;创建字符设备驱动 驱动开发&#xff08;三&#xff09;&#xff1a;内核层控制硬件层 驱动开发&#xff08;四&#xff…

移动端超超超详细知识点总结(Part4)

rem基础 1. rem单位 rem (root em)是一个相对单位&#xff0c;类似于em&#xff0c;em是父元素字体大小。不同的是rem的基准是相对于html元素的字体大小。比如&#xff0c;根元素&#xff08;html&#xff09;设置font-size12px; 非根元素设置width:2rem;则换成px表示就是24p…

数据防泄漏的六个步骤|数据防泄漏软件有哪些

在当前复杂多变的网络安全环境下&#xff0c;数据防泄漏软件成为了企业信息安全架构中不可或缺的一环。下面以安企神软件为例&#xff0c;告诉你怎么防止数据泄露&#xff0c;以及好用的防泄露软件。 1. 安企神软件 安企神软件是当前市场上备受推崇的企业级数据防泄漏解决方案…