首页 > 编程语言 >盘点一个Python自动化办公实战问题

盘点一个Python自动化办公实战问题

时间:2024-09-10 13:24:19浏览次数:7  
标签:实战 文件 马桥 新年 文件名 Python 盘点 瑜亮

大家好,我是Python进阶者。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Python自动化办公实战的问题,问题如下:大佬们,我有个难度高的问题,我有个文件夹,里面呢有一堆文件,然后我要寻找至少2个关键字相同的文件,然后提取文件中第二列中的数字,第一列名称保留,譬如图片中,只要是有马桥这两个字,就分别打开这两个文件,形成新的文件,第二列的数据,依次放在B列C列这样子。

image.png

直接把问题和文件,截图等都给全盘托出了,不过咋一看,这个问题确实有点复杂,看文字确实不明所以。后来【瑜亮老师】要求他发语音补充下问题信息。

image.png

二、实现过程

这里继续补充下粉丝的需求:大哥们是这样子,就是说文件里面不是有很多文件嘛,然后呢,原先呢,等于说是他这个文件名字呢,当时取的比方说是一月份马桥,两月份马桥,三月份马桥。然后呢,我只要找到有马桥这两个字的就是文件,然后分别打开,然后呢,取第二列的那个数字。然后呢,就是新形成一个新的文件,把第二列的数字呢,放在新文件那个里面的第二列,第三列,第四列第五列,这样依次排列,这样子方便我看他这个每个月的数字的有有哪些不同。

然后呢,第一列我是保留的,因为第一列等于说里面文件当中的第一列都是相同的,然后呢,我只取要我只是我只需要提取一次就可以了,等于说第一列等于说是名字都一样的。

语音补充后确实清晰很多了,这里【瑜亮老师】给了一个具体的实现方法,具体如下所示:

image.png

对文件名中月份和报告前面的文字提取一下,相同的就把数据横向合并为两行。全部马桥的拼接一个excel文件,全部砖桥的拼接一个excel文件,如果你有全部的这些地名的列表,做起来会更简单,如果地名不多,可以手动写个列表,把地名保存到里面。如果地名有很多,那可以用代码提取一下。

image.png

【上海新年人】:不是,就是能不能用这种形式,譬如文件名[2:5],只要是2:5完全相同就合同在一起,合并在一起,然后能不能用pandas中的concat。

【瑜亮老师】:也可以,但是你要保证地名长度符合切片取值的范围。例如你举例是2:5,取3个字符,就要保证这三个字符能够涵盖所有的分类。

【上海新年人】:对呀,譬如2月马桥,3月马桥,我只取第2-4中的马桥这两字,然后用concat能行吗?好久没用pandas,忘记了怎么用法

【瑜亮老师】:可以的。最终还是遍历文件名,然后分类,读取文件,把df添加进数据列表中,然后concat合并列表,to_excel。

【上海新年人】:用if怎么用法?每个file_name[2:4]要完全相同!

for file_name in file_names:
    if file_name[2:4] = ?

【瑜亮老师】:不能这么写,存储格式最好是用{“file_name[2:4]”:[df1,df2]}这样的。

image.png

【上海新年人】:我不要这么找法!

【瑜亮老师】:具体实现如下:

image.png

【上海新年人】:stem代表什么?

【瑜亮老师】:文件名,不包括扩展名的文件名,你也可以用file.name,意思是包含扩展名的文件名。但是这里都是不影响结果的。用哪个都行。

【上海新年人】:哦,我验算下

image.png

【瑜亮老师】:这里切片只取了2个字符,如果你的文件名中的地名长度超过2个字符,就会出现问题。要么数据出现混乱,要么生成的文件名不对。比如马新桥,切片只能提取出来马新。主要是数据少,只能按照你给的数据写出代码。

【上海新年人】:瑜亮老师,上面的代码可行的,思路不错,谢谢瑜亮老师!!难点在于那个字典那个操作,琢磨了好久。

image.png

顺利地解决了自己的问题。

如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点了一个Python自动化办公实战的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【上海新年人】提出的问题,感谢【瑜亮老师】给出的思路,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
image.png

标签:实战,文件,马桥,新年,文件名,Python,盘点,瑜亮
From: https://www.cnblogs.com/dcpeng/p/18406219

相关文章

  • 大模型应用开发实战
    https://www.cnblogs.com/yubaolee/p/18390767在接触AI应用开发的这段时间,我以为会像以前学.net,学java,学vue一样。先整个helloworld,再一步一步学搭功能,学搭框架直到搭一个系统出来。然而,理想总是很丰满,现实很骨感。在实践的过程中各种千奇百怪的问题:概念太多。你以为就GPT、L......
  • 第J3周:DenseNet算法实战与解析(TensorFlow版)
    >-**......
  • python进阶————上下文管理器跟生成器
    上下文管理器与生成器前言一、回顾open语法二、自定义上下文管理器三、生成器3.1创建生成器的两种方式3.1.1生成器推导式3.1.2yield关键字3.2使用生成器生成批次数据四、property属性4.1充当装饰器用法4.2修饰类变量总结前言我们之前学习了文件操作的......
  • 今日分享 | AI大模型学习者的知识基座《实战AI大模型》(附PDF)
    前言大型深度学习模型(简称AI大模型)以其强大的表征能力和卓越的性能,在自然语言处理、计算机视觉、推荐系统等领域均取得了突破性的进展。尤其随着AI大模型的广泛应用,无数领域因此受益。《实战AI大模型》是一本兼具深度和广度的大模型入门书籍,它深入浅出地诠释了AI大模型的核心概念和......
  • Python怎么发送邮件:基础步骤与详细教程?
    Python怎么发送邮件带附件?怎么使用Python发送邮件?无论是工作中的通知、报告,还是生活中的问候、邀请,电子邮件都扮演着不可或缺的角色。那么,Python怎么发送邮件呢?AokSend将详细介绍Python发送邮件的基础步骤。Python怎么发送邮件:必要的库常用的库包括smtplib和email。smtplib......
  • 【Python】使用字典进行人员匹配的问题
    要解决这个问题,我们可以编写一个Python脚本,该脚本首先定义一个包含三个学生信息的列表,然后通过用户输入的年龄来筛选出所有该年龄的学生,并打印出他们的个人信息。以下是具体的代码实现:```python#定义一个列表,包含三个学生的信息students=[  {"Name":"张三","Ge......
  • 【Python】排序算法及二叉树讲解(冒泡 选择 插入 二分查找 二叉树的广度优先和三种深
    排序算法​所谓排序,使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作​排序算法,就是如何使得记录按照要求排列的方法​排序算法在很多领域是非常重要​在大量数据的处理方面:一个优秀的算法可以节省大量的资源。​在各个领域中考虑到数据的......
  • [Python手撕]排序链表
    #Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defsortList(self,head:Optional[ListNode])->Optional[ListNode]:def......
  • 小琳Python课堂:掌握进程与线程的奥秘
    大家好,这里是小琳Python课堂!今天我们来探讨Python中的多任务处理利器——进程和线程!......
  • 基于java ssm vue mysql大学校医院信息管理系统毕业设计项目实战分享
    前言......