【1】地表最受欢迎编程语言
现在地球上程序员使用最多的编程语言是哪一门?
近日,IEEE Spectrum 发布的 2023 年度编程语言榜单为我们揭晓了答案——Python。该榜单是从多个维度进行统计分析得出的,包括 Google、StackOverfolw、GitHub、IEEE Xplore Digital等。
根据榜单显示,Python 连续八年名列前茅,是当之无愧的地表最受欢迎编程语言。Python 如此强悍,是因为它语法设计简洁明了,代码可读性强,非科班的初学者也可以快速上手。
加上 Python 拥有庞大的第三方功能库,并且具备与其他主流编程语言集成的能力,因此 Python 的功能也十分强大。无怪乎坊间传闻,Python 程序员的头发是最茂盛的。
要知道 Python 有多强大,小异的经历就是最好的证明。最近领导交待小异一项任务,要将几十份 Excel 表格的数据导入MySQL 数据库中。
小异评估工作量觉得要三天时间,领导微微一笑,说:“不用,一个小时足够你搞定了。” 小异闻言一脸的难以置信,领导提示说:“研究一下用 Python 解决这个问题吧,没用过也没关系,上手很快的。”
于是,小异带着问题去搜资料,找解决方案,鼓捣了一天,居然真的在下班前搞定了。小异惊叹于 Python 的简洁强大,也很有信心,再来类似任务,肯定可以在一小时以内完成。
我们来看一下初次接触 Python 的小异是怎么解决这个问题的。
【2】准备工作:配置开发环境,学习 Python 基本语法
首先是要配置 Python 开发环境,小异决定在 Debian Linux 上进行开发工作。把必须要用到的编译工具给装上,使用 Python3、包管理器 pip。
sudoapt install python3
sudoapt install python3-pip小异的目标很明确,只要能够解析 Excel 文档,写入 MySQL 数据库,功能够用就可以,复杂的编程知识以后再学。因此决定将学习范围放在 Python 的基本语法上,得益于对 shell 编程有所了解,小异发现 Python 上手也挺快。
小异在 REPL(Read-Eval-Print Loop)交互式编程环境中开始学习。经过几轮练习,就掌握了基本的算术运算、字符串处理、打印输出等方法。以下为 Python3 的 REPL 示例:
Type"help", "copyright", "credits"or"license"formoreinformation.
>>>print('hello, world')
hello, world
>>>12*100-(45/3+32)
1153.0
>>>'once'+'more'
'oncemore'接下来,小异又在文本文件中编辑了几段代码并保存执行,初步了解调试排错的方法。现在转入工作任务的处理,打算在解决问题的过程中继续学习。
经过思考,小异将整个任务拆分为两个步骤,第一是实现读取 Excel 文档,并将数据按数据头、行列解析出来;第二是操作 MySQL,实现创建表、插入数据,最终将 Excel 数据自动导入MySQL 中。
【3】第一步:用 Python 读取并解析 Excel
在全世界 Python 开源技术爱好者的贡献下,Python 有极为丰富的第三方库。小异选择了普遍使用的 pandas 库。pandas是一个强大的数据处理和分析库,它提供了高性能、易于使用的数据结构和数据分析工具,特别适合处理和分析结构化数据。
首先是安装 pandas。pip 包管理器会将 numpy、pytz 等依赖库也一并安装:
所有待处理的 Excel 表结构都是一样的,第一行是属性值,从第二行开始就是数据值。类似如下结构:接下来,小异想到的是,能打开 Excel 文件,并且按行遍历将数据打印出来,这样下一步就可以拼接 SQL 的 INSERT 语句:importpandasaspd
# 读取整个Excel文件
df=pd.read_excel('example.xlsx', header=1)
# 按行遍历Excel表,并匹配属性值打印对应的数据
foriindf.index.values:
print(df.iloc[i]['id'], df.iloc[i]['name'], df.iloc[i]['age'], df.iloc[i]['address'], df.iloc[i]['email'])在上述代码中,首先使用read_excel()函数读取整个 Excel 文件并将其存储在 DataFrame 对象df中。然后,通过指定iloc属性来选择特定的行和列。iloc[][]有两个参数,第一个参数是行的索引值,第二个参数是列的名称。
去掉空行和注释,仅用 4 行代码就初步实现了意图。小异在这一步建立起了信心,向着下一个目标写入 MySQL 继续推进。【4】第二步:用 Python 写入 MYSQLysql首先还是找到方便操作 MySQL 的第三方库,即 Python 语言的官方 MySQL 驱动库:mysql-connector-python。该库提供了高性能、稳定的接口,实现连接 MySQL 库,并执行 sql 的查询、插入、更新、删除等操作,支持事务处理,还有错误处理机制。使用 pip 命令安装 mysql-connector-python:pip install mysql-connector-python小异经过一番摸索,调通了连接数据库、执行插入等操作,再与第一步的解析 Excel 功能合并,得到了初步可以工作的版本:importpandasaspd
importmysql.connector
df=pd.read_excel('example.xlsx', header=1)
# 连接到MySQL服务器
conn=mysql.connector.connect(
user='someone',
password='123456',
host='127.0.0.1',
database='person'
)
# 创建游标对象
cursor=conn.cursor()
foriindf.index.values:
# 执行插入操作
sql="INSERT INTO UserInfo (id, name, age, address, email) VALUES (%s, %s, %s, %s, %s)"
values=(df.iloc[i]['id'], df.iloc[i]['name'], df.iloc[i]['age'] df.iloc[i]['address'] df.iloc[i]['email'])
cursor.execute(sql, values)
conn.commit()
# 关闭连接
cursor.close()
conn.close()上述代码先使用mysql.connector.connect()函数连接到 MySQL 服务器,并指定用户名、密码、主机名和数据库名称。然后创建一个游标对象,用于执行 sql 语句。
在遍历 Excel 表的循环中,将行数据依次拼接到 INSERT语句中,执行以后以事务提交,实现将数据写入 MySQL 中。当然,这个初步的版本还可以进一步优化,例如将多行数据合并到一条插入语句中,以减少操作 MySQL 的频率。
至此,小异的任务已经顺利完成,同时也被 Python 深深地吸引,打算在以后尽量使用它来将工作自动化。Python 能做的可不只是读取 Excel 或者操作数据库,它能做的事真不少,从《Python编程快速上手——让繁琐工作自动化 第2版》这本书里,你还能学到更多妙招。
不是计算机专业的,从没学过编程,担心年纪大了吸收不了?这都不是问题,这本书就是写给任何一位零基础学习者的,只要有兴趣就行,放心翻开它吧。
在内容编排上,书中从 Python 环境的安装配置讲起,用浅显易懂的语言讲解 Python 语法的基础知识,并配有习题巩固学习成果。
本书给读者制定的学习目标不是成为编程专家,而是能用 Python 处理办公场景中的各种任务,以自动化的方式提升工作效率。所以重视实战是本书的一大特点,它讲解了 14 类工作的 81 个实用项目,学会就能直接在工作中用到。
这些工作包括本地文件搜索和处理;网页数据的下载和加工处理;对 Excel 文档的读取解析与计算;自动发送邮件、短信;自动操控电脑等。
配套资源丰富是本书的另一大特点。读者拿到手上的绝不只是一本纸质书,还能获得 900 分钟的在线教学视频、在线编程环境、配套习题答案、全书思维导图、读书社群互动学习、2000 门扩展视频课程。总之,只要你的工作内容涉及使用电脑办公,需要在互联网上开展业务,就一定能找到使用 Python 提升效率的点。也不必担心学习 Python 对编程有多高的要求,《Python编程快速上手——让繁琐工作自动化 第2版》已经帮你把路铺好,在多种配套资源的辅助下,踏实走好每一步,就能让 Python 成为工作好帮手。