首页 > 编程语言 >你都用Python来干什么?为什么这么多人想学习Python?

你都用Python来干什么?为什么这么多人想学习Python?

时间:2024-03-28 11:00:43浏览次数:35  
标签:非常 Python 干什么 可以 excel 学习 python 多人

挺想回答一下这个问题的。

我是非码专业,从2019年开始接触python。

一开始其实需求非常简单,就是为了处理大量的Excel表格。其实本来四大的工作经历已经让我excel的水平比较高了,各种跨表定位、查询,复杂的字符串操作,还有vba函数都可以处理。但是python铺天盖地的宣传还是让我觉得,好像有必要学习一下这个工具。所以就简单学习了一下语法,开始一边学一边写了。

第一阶段-单机脚本:

我遇到的第一个场景是这样的:公司的某个银企直连支付平台需要维护全国所有银行的所有支行的“联行号”或者说是大额支付行号,这个行号是人行下发的,数据量大概在20万条记录左右。本来处理这个事情很简单,把数据全部导入excel,然后匹配一下看看新的数据新增了哪些,变更了哪些,然后去系统里面更新就可以了。但是这样做有个问题,一个是excel处理这个量的数据会非常卡,有时候甚至运算到一半直接崩溃(8G内存办公电脑)。第二个是即使简单的vlookup还有大量的同事不会用,所以如果每次都是excel来处理活就砸在自己手里了,工作安排也没有任何风险冗余。所以我就面向百度编程,靠调包平凑了一个脚本出来,没有UI,没有设计结构,一个py文件处理所有流程,然后把执行py文件的bat也放在一起作为入口:

而脚本写的也完全没有任何规范,变量随意命名,面向过程变成:

但是至少,可以稳定的运行,而且考虑到excel动辄需要五分钟十分钟的运算,啥都不能干,这个脚本至少可以稳定的在一两分钟内跑完。

完成这个脚本以后,我只需要每周执行一下bat文件,非常舒服,让我一下尝到了python开发的甜头,从此看啥都是个钉子,开始自己折腾。

第二阶段-内网爬虫:

自从成功调用excel相关的python包以后,就一直停滞在使用python操作excel,说实话,对于一般的工作场景来说,其实效率并没有高。就像上面的例子说的那样,可能本来十分钟的活,做好以后只需要几秒,但是自己敲代码可能搞不好就要半天。所以渐渐的觉得自己是不是舍近求远了。

然后突然有一天,主管机关来检查了,需要查看我们报销流程的审批情况。检查人员挑了五六十条流程,要看系统审批记录。这个其实本来应该是信息技术部的工作,可以从流程引擎相关的数据库表里面导出记录来。但是呢主管机关是财务条线的,他们的要求很简单,只要看页面上打印下来的审批记录,不要看数据库的数据。信息的同事觉得,这不是“给我切十斤寸金软骨”的抬杠需求码,直接就反馈说做不了,要么给个权限到系统里面自己看吧。可是我们不敢得罪检查人员啊,领导一拍桌子说,自己给他们导吧!活就到我手上了。

如果真的手工做,我估摸着要搞一两个小时,时间长不说还非常无聊。然后我想起python不是卖课的时候一直号称适合做爬虫吗。这不巧了吗。

马上打开编程环境:百度。然后了解了一下爬虫,啊不是,了解了一下几个可以操作浏览器的包的使用方法。再次开始掉包侠的工作。

这次非常有趣,爬虫常见的比较难处理的情况在我这边都不存在,首先是用户登录,我们因为是内网业务所以没有任何反爬措施,直接提交用户名和密码就能登录。甚至,我都不需要登录,因为是一次性拉去页面信息,我为了“敏捷开发”,甚至直接F12查了登陆以后的cookie,然后带着cookie发起请求。然后,幸运的是我们的内网业务系统,URL非常规范,我甚至可以根据检查人员给的单号直接拼出URL,访问也非常方便。最后,页面结构也非常规范,我可以使用浏览器自带的xpath功能,通过复制粘贴定位元素,模拟鼠标点击。整个工程没有任何难点,代码风格依旧保持乱写的状态:

甚至主要功能是网上抄的

不管写的怎么样,效果还是非常好的。特别是当我们把所有的pdf打包好了交给检察人员,他们又给了我们一个清单,还要再补充百八十个样本的时候,心情那个舒畅啊。

从此,我开始对网络感兴趣,意识到单机的python脚本能力实在有限。所以囫囵吞枣地大概的了解了一下TCPIP协议,了解了一下HTTP协议。本意是为了防止以后爬虫的时候出现百度都不知道怎么百度的情况,却意外的让我前进到第三个阶段。

第三阶段-建立服务:

其实随着写的爬虫和excel脚本越来越多,同事也会不断的问我要一些工具,让他们也可以用用。单怎么让他们使用其实蛮困扰的。bat的问题是需要在别人的机器上配置python环境,而且几乎不能交互。所以后来就想到了用pyinstaller打包。打包的问题也不少,文件大就不说了,毕竟整个python解释器都在里面,最大的问题是比较简单的UI库都太丑了。我当时主要写的是Tkinter,一股浓郁的win98风格。同事看到了第一反应就是,你这个老古董,不太敢用啊。

我就想那别人怎么搞,难道只能自娱自乐吗。

大佬们的答案都一样,起一个服务,用前端作为UI呀。这样完全不用考虑用户环境,而且只要一个浏览器就行了。

我一听,这个方案,非常优雅。

说干就干。我的需求就是要“敏捷开发”,毕竟我只有一个人,而且码代码也有不是我的本职工作,所以就选用了Flask架构,一行代码起一个服务。前端我不懂,就不考虑美观,css和js都几乎为0的情况下,做了一些堆砌控件的“前端”;后端数据库我也不懂,但是不要紧,我的业务数据量都非常小,可以用python的pickle作为永久层,查数据就用字典,非常方便。展现出来的效果大概是这样的,页面虽然依旧是几十年前的风格,但是同事发现可以通过浏览器访问,觉得非常高级:

使用了jinja模板,所以预览的时候有奇怪的变量

而项目文件夹有大量的pkl文件:

非常丑,但是别人看不见。

而因为集成的功能也越来越多,至少这次开始,注意到了代码的质量,比如分割功能块啊,函数出入口标注变量类型啥的,以免写道后面自己都忘记了:

随着挂载的功能数量越来越多,突然觉得既然已经做到这一步了,不如就好好的做成一个项目,于是就只能逼着自己去学一些JS,CSS之类的前端基础,还有后端的SQL和python-sqlalchemy这类的包。

第四阶段-内网服务&RPA

既然气氛已经烘托到这里了,那就只能把整个项目好好的完善一下,首先是前端,通过网上抄一些js动画,还有做一些简单的“扁平化风格”的按钮:

后端也鸟枪换炮,不再使用pickle做永久层,而使用正经的mysql来储存,并且尝试使用sqlalchemy的ORM工具:

这样检查、修改都非常方便。

到这里为止,我自己部署的服务已经囊括了财务日常工作需要做的大部分内容,包括自动生成结账分录,推送到财务系统,打印流水、打印凭证及匹配银行回单等等等等,我每天的日常工作其实已经基本没有了。

回到最初的问题,其实如果以兴趣为导向,python真的是一个非常容易上手,功能又很强大的工具。Python能做什么,取决于你想要做什么,在数字的世界中,你只要投入足够的精力在某个工具上,一定会给你值得的回报。

与君共勉。


如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

标签:非常,Python,干什么,可以,excel,学习,python,多人
From: https://blog.csdn.net/z099164/article/details/137080735

相关文章

  • 如何系统地学习Python(一)基础语法与数据类型
    学习Python可以遵循一个结构化的框架,从基础知识开始,逐步深入到高级特性和实际应用。后面根据系统的学习Python的框架分享一系列文章,请交流指正:一、python介绍Python是一种高级的、解释型的、面向对象的编程语言。它具有简单易学、语法优雅、可读性强等特点,因此被广泛应用于We......
  • Django框架之python后端框架介绍
    一、网络框架及MVC、MTV模型1、网络框架网络框架(Webframework)是一种软件框架,用于帮助开发人员构建Web应用程序和Web服务。它提供了一系列预先编写好的代码和工具,以简化开发过程并提高开发效率。网络框架通常包括以下功能和特点:路由处理(Routing):网络框架定义了URL与处理程序......
  • Python数据库编程全指南SQLite和MySQL实践
    本文分享自华为云社区《Python数据库编程全指南SQLite和MySQL实践》,作者:柠檬味拥抱。1.安装必要的库首先,我们需要安装Python的数据库驱动程序,以便与SQLite和MySQL进行交互。对于SQLite,Python自带了支持;而对于MySQL,我们需要安装额外的库,如mysql-connector-python。#安装MyS......
  • 4.Python数据分析—数据分析入门知识图谱&索引(知识体系下篇)
    4.Python数据分析—数据分析入门知识图谱&索引-知识体系下篇一·个人简介二·机器学习基础2.1监督学习与无监督学习2.1.1监督学习:2.1.2无监督学习:2.2特征工程2.3常用机器学习算法概述2.3.1监督学习算法:2.3.2无监督学习算法:2.3.3强化学习:2.4模型评估与选择三......
  • Python虚拟环境遇到的小问题(pip)
    问题最近想接触下Pyside6做窗口化的程序,然后就在WSL2搭建环境。第一步安装包的时候就卡住了。原因是虽然我的Python在虚拟环境.venv中,但是该环境没有pip。在命令行直接whichpip,显示的是系统全局的pip。解决多方查询,似乎没有一个很好的解决方案。目前主流的做法是,下载一个自动......
  • 华为OD机试 - 最多购买宝石数目(Java & JS & Python & C & C++)
    须知哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持文章目录须知题目描述输入描述输出描述解题思路:题目描述橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为gems[i]0≤i<nn=gems.length宝石可同时......
  • python x_train取前100行
    目录Python代码示例:取出x_train前100行数据Python代码示例:取出x_train前100行数据在机器学习和数据处理中,有时我们需要对数据集进行处理,比如提取其中的部分数据进行分析或训练模型。在Python中,我们可以利用简单的代码来实现这一功能。下面就以一个示例来演示如何使用Pytho......
  • 毕业设计:基于深度学习的流动摊贩检测系统 人工智能 python
    目录前言一、课题背景与意义二、算法理论技术2.1目标检测算法2.2注意力机制三、模型训练3.1数据处理3.2实验环境3.3结果分析最后前言 ......
  • 高斯混合模型(GMM)和EM算法 —— python实现
    一、EM算法EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计。设Y为观测随机变量的数据,Z为隐藏的随机变量数据,Y和Z一起称为完全数据。观测数据的似然函数为:模型参数θ的极大似然估计为:这个问题只有通过迭代求解,下面给出EM算法的迭代求解过程:step1、选择......
  • Python 函数
    目录函数自定义函数语法说明匿名函数语法模块标准库和扩展库中对象的导入与使用自定义函数的导入常用内置函数排序sorted()枚举enumerate()映射map()过滤filter()压缩zip()函数函数是可以重复使用的用于实现某种功能的代码块。在Python中,分内置函数......