Python 自动化之批量处理文件(一)

news2024/10/6 4:09:37

批量新建目录、文档Pro版本


文章目录

  • 批量新建目录、文档Pro版本
  • 前言
  • 一、做成什么样子
  • 二、基本思路
    • 1.引入库
    • 2.基本架构
  • 三、用户输入模块
  • 四、数据处理模块
    • 1.excel表格数据获取
    • 2.批量数据的生成
  • 总结


前言

我来写一个不一样的批量新建吧。在工作中,有些同学应该会遇到需要以某个excel表格为切入点,去批量的新建目录或者文档啊什么的,希望对大家有所帮助吧。


一、做成什么样子

通过读取excel文档的指定数据信息,在指定目录下、有序的、以相应的单元格的数据,进行批量新建目录、txt、docx、xlsx等。

用户需要输入的东西有:excel文档、文档里第几个sheet、从哪行那列开始、保存路径、新建数据类型(目录、txt、docx、xlsx)。

二、基本思路

1.引入库

代码如下:

from openpyxl import load_workbook
from openpyxl import Workbook
from docx import Document
import os

这是后面需要用到的一些库。


2.基本架构

代码如下:

.........        #用户输入

for ........:    #主循环结构
    ......       #获取excel表格里的信息

    if ......:  
        ......   #排除表格的单元格为空的情况
    else:
        .....    #生成数据类型选择

首先是输入模块,根据使用者输入的信息,为下面提供数据筛选规则。

其次是主循环结构,刚开始是先要获取excel表格里的信息。

然后if—else结构根据表格的信息:if下面的用来排除表格的单元格为空的情况。else用来生成数据类型选择(比如前面用户输入的是目录,这里就批量新建目录)

下面开始代码的编写。


三、用户输入模块

代码如下:

print('请输入excel文档完整路径(例子:E:\BaiduNetdiskDownload\你好.xlsx):', end='')
excel_path = input()
# 加载工作簿(这里要加载一下,创建一个实例,后面的主循环结构里会用到)
wb = load_workbook(excel_path)

print('在文档的第几个工作表:', end='')
sheet = int(input())
# 选择工作表
ws = wb.worksheets[sheet-1]

print(f'在第{sheet}个工作表的第几列:', end='')
lie_num = int(input())

print(f'在第{sheet}个工作表的第几行开始:', end='')
hang_num = int(input())


print('打算在哪个目录下批量生成(例子:D:\dsest):', end='')
parent_directory = input()

print('打算在这个目录下批量生成什么(1 目录  2 txt  3 docx  4 xlsx ):', end='')
creat_type = input()

这里就对应了刚开头第一章节我所提到的东西,精确定位精确匹配。
注释写的很清楚,我就不多解释了。


四、数据处理模块

1.excel表格数据获取

代码如下:

i = 0    #这个是用来对批量新建的东西做排序

for row in ws.iter_rows(min_row=hang_num):   # 遍历从所选行往后的行的数据(包括所选行)
    i += 1
    value = row[lie_num-1].value        # 获取当前行所对应的列的单元格的值
    order_value = f'{i}-{value}'       #后面批量新建东西的名称就用这个,开头为数字电脑会自动排序你懂得

可能会有一些绕,多看看。简单来说就是获取用户所选范围的每个单元格的值。


2.批量数据的生成

代码如下:

    if str(value) == 'None':
        pass
    else:
        if creat_type == '1':
            directory_name = str(order_value)         # 获取当前行的值并转换为字符串
            full_path = os.path.join(parent_directory, directory_name)
            os.makedirs(full_path, exist_ok=True)     # 创建目录,如果已经存在,则不抛出异常

            directory_name = f'{str(order_value)}.xlsx'  # 获取当前行的值并转换为字符串
            xls = Workbook()     # 新建一个 xlsx 文档     
            xls.save(full_path)  #保存

        elif creat_type == '2':
            directory_name = f'{str(order_value)}.txt'  # 获取当前行的值并转换为字符串
            full_path = os.path.join(parent_directory, directory_name)
            with open(full_path, 'a'):
                os.utime(full_path, None)  

        elif creat_type == '3':
            directory_name = f'{str(order_value)}.docx'  # 获取当前行的值并转换为字符串
            full_path = os.path.join(parent_directory, directory_name)
            doc = Document()     # 新建一个 Word 文档
            doc.save(full_path)  #保存

这段代码也是在主循环for结构的运行的,可以看出有两个if结构进行了嵌套。

最外层的if作用是:难免其中有些单元格为空,遇到了就排除了它们。

最里层的if作用是:刚开始用户选的哪个程序就执行哪个操作。同时,这里四块代码是有规律的,都是先确定了批量生成的东西的名字,然后是确定了要在哪个目录下生成,最后是生成保存。


总结

批量新建这玩意儿目前想到的就这些了,后续我想到其它新的点子再往这篇博客上编辑添加。批量删除的就暂时不写了,工作生产上应该很少删除东西,毕竟说不定哪天会用到。

在这里插入图片描述

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

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

相关文章

神秘学原理。

神秘学原理TOC 神秘通常是与未知相关联的概念。而神秘学包括:研究历史上的神秘现象(不符合常识的现象),超能力(与神秘现象有关),预言未来,算命占卜,辨别与解释神秘现象&a…

记录一次chatGPT人机协同实战辅助科研——根据词库自动进行情感分析

有一个Excel中的一列,读取文本判断文本包含积极情感词.txt和消极情感词.txt的个数,分别生成两列统计数据 请将 ‘your_file.xlsx’ 替换为你的Excel文件名,Your Text Column’替换为包含文本的列名。 这个程序首先读取了积极和消极情感词&…

如何解决PET材料难于粘接的问题?有效解决方案分享!

1.PET是什么材料?有哪些特点和用途? PET是聚对苯二甲酸乙二醇酯(Polyethylene Terephthalate)的缩写,是一种常见的塑料材料。它具有以下特点: 高强度和刚性:PET具有较高的拉伸强度和模量,使其…

计算机毕业设计 基于SpringBoot的乡村政务办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

多维时序 | MATLAB实现BWO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现BWO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现BWO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现BWO-CNN-B…

Unity中实现ShaderToy卡通火(原理实现篇)

文章目录 前言一、我们在片元着色器中,实现卡通火的大体框架1、使用 noise 和 _CUTOFF 判断作为显示火焰的区域2、_CUTOFF : 用于裁剪噪波范围的三角形3、noise getNoise(uv, t); : 噪波函数 二、顺着大体框架依次解析具体实现的功能1、 uv.x * 4.0; : …

基于深度学习的课堂举手人数统计系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着信息技术的快速发展,教育领域也逐渐开始应用新技术来改善教学质量和效果。在传统的课堂教学中,教师通常需要手动记录学生的举手情况&…

集合03 Collection (List) - Java

List ArrayListArrayList注意事项ArrayList底层操作机制-源码分析(重点) VectorVector基本介绍 ——Vector和ArrayList比较Vector底层结构和源码分析 LinkedList基本介绍LinkedList的底层结构和操作机制LinkedList的增删改查 ——LinkedList和ArrayList比…

用CHAT 写农业产品管理制度

问CHAT:茶叶种植基地农业投入品管理制度 CHAT回复:茶业种植基地农业投入品管理制度是规范茶叶种植管理、保证产品质量与安全,提升作物生产效益的重要环节。 以下是对于茶叶种植基地农业投入品管理制度的一些基本措施建议: 1. 投…

C# 使用异步委托获取线程返回值

写在前面 异步委托主要用于解决 ThreadPool.QueueUserWorkItem 没有提供获取线程执行完成后的返回值问题。异步委托只能在.Net Framework 框架下使用,.Net Core中会报平台错误,而且使用Task.Result来获取返回值,可以达成同样的目的&#xff…

Android--Jetpack--数据库Room详解一

人生何须万种愁,千里云烟一笑收 一,定义 Room也是一个ORM框架,它在SQLite上提供了一个抽象层,屏蔽了部分底层的细节,使用对象对数据库进行操作,进行CRUD就像对象调用方法一样的简单。 二,角色介…

靠谱的车- 华为OD统一考试(C卷)

靠谱的车- 华为OD统一考试(C卷) OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题&#xf…

HTML+CSS高频面试题

面试题目录 前言1.讲一下盒模型,普通盒模型和怪异盒模型有什么区别2.CSS如何实现居中3.讲一下flex弹性盒布局4.CSS常见的选择器有哪些?优先级5.长度单位px 、em、rem的区别6.position属性的值有哪些7.display属性的值有哪些,分别有什么作用8.…

TCP/IP详解——IP协议,IP选路

文章目录 1. IP 编址1.1 IP 报文头部1.2 进制之间的转换1.3 网络通信1.4 有类 IP 编制的缺陷1.5 变长子网掩码1.6 网关1.7 IP 包分片1.7.1 IP 包分片实例1.7.2 IP 分片注意事项1.7.3 Wireshark 抓取 IP 包分片1.7.4 OmniPeek 抓取 IP 包分片1.7.5 ICMP 不可达差错(需…

【生物信息学】scRNA-seq数据分析(一):质控~细胞筛选~高表达基因筛选

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 质控2. 细胞筛选3. 高表达基因筛选 一、实验介绍 质控~ 细胞筛选 ~高表达基因筛选 二、实验环境 1. 配置虚拟环境 可使用如下指令: conda create -n bio python3.…

bugku--社工-初步收集

打开是这么个东西 下面的刷钻软件可以下载 御剑扫一下目录,发现个登录界面 打开刷钻软件抓个包看一下 发现这么两条数据 user 和 pass base64 解码 user:Username: YnVna3VrdUAxNjMuY29t pass:Password: WFNMUk9DUE1OV1daUURaTA 解码发现是163的邮箱账号密码 登…

Vulnhub-DC-2 靶机复现完整过程

环境准备: kali: NAT模式 网段 :192.168.200.0 DC-2: NAT模式 网段 :192.168.200.0 保证靶机和攻击机在一个网段上 信息收集 收集同网段存货主机IP地址 nmap -sP ip地址 arp-scan -l显示错误页面,显然是重定向错误&#xff0c…

独立完成软件的功能的测试(2)

独立完成软件的功能的测试(2) (12.13) 1. 对穷举场景设计测试点(等价类划分法) 等价类划分法的概念: 说明:数据有共同特征,成功失败分类: 有效&#xff1a…

CSS的三大特性(层叠性、继承性、优先级---------很重要)

CSS 有三个非常重要的三个特性:层叠性、继承性、优先级。 层叠性 场景:相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突 的问题 原则:  样式冲突&am…

如何从eureka-server上进行服务发现,负载均衡远程调用服务

在spring cloud的maven的pom文件中添加eureka-client的依赖坐标 <!--eureka-client依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependen…