今天跟大家唠唠我捣鼓的“巴西利斯克”项目,别害怕,不是真蛇怪,是个挺有意思的代码项目,名字唬人而已。
话说这名字还是我随便起的,当时就觉得这项目要像蛇怪一样,一出手就得有点震慑力。
我琢磨着搞一个自动化脚本,能帮我批量处理一些重复性的工作。那段时间,我天天加班,一大堆琐碎的事情,复制粘贴,改来改去,烦都烦死了。就想着能不能偷个懒,让电脑自己干。
调研:
我先是上网搜了一圈,看了看有没有现成的轮子可以用。结果发现,要么功能太简单,要么就是太复杂,不符合我的需求。
确定方向:
所以就决定自己撸一个。 需求嘛也很简单:
1. 能读取Excel表格的数据
2. 能根据数据自动生成一些文件
3. 能自动上传到指定的服务器
开干:
语言方面,我选择了Python。 这玩意儿语法简单,库也多,用起来比较顺手。
1. 读取Excel:
直接用`pandas`库,几行代码就搞定了。
python
import pandas as pd
df = *_excel('*')
2. 生成文件:
我用的是`jinja2`模板引擎。 先定义好一个模板文件,然后把数据填进去,就能生成想要的文件了。
python
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('.'))
template = *_template('*')
output = *(data=*_dict('records'))
3. 上传服务器:
这个稍微麻烦点,用的是`paramiko`库, 通过SSH连接服务器,然后把文件传上去。
python
import paramiko
ssh = *()
*_missing_host_key_policy(*())
*(hostname='your_server', username='your_username', password='your_password')
sftp = *_sftp()
*('*', '/path/to/destination/*')
调试:写完代码,就开始调试。 这一步是最痛苦的,各种bug层出不穷。
最开始是编码问题,读取Excel表格的时候,中文乱码。 后来改成`encoding='utf-8'`才解决。
然后是SSH连接问题, 密码错误,权限不足等等。折腾了好久才搞定。
还有就是文件上传问题,路径不对,文件名错误。 真是让人头大。
优化:经过几天的折腾,总算是把这个“巴西利斯克”给搞出来了。 看着它自动帮我生成文件,上传服务器,心里那个爽。
不过这玩意儿刚开始效率不高,运行速度有点慢。 于是我又对代码进行了优化。
把一些重复的代码封装成函数,提高代码的复用性。
使用多线程,加快文件上传速度。
增加日志记录,方便排查问题。
这个“巴西利斯克”项目虽然简单,但是真的帮我节省了很多时间。现在我每天只需要跑一下这个脚本,就能轻松完成之前需要花费大量时间才能完成的工作。
这回实践让我体会到了自动化脚本的强大之处。 以后有机会,我还要继续学习, 搞出更多有意思的东西。
这回分享就到这里了,大家有什么问题可以在评论区留言,我们一起交流学习。
还没有评论,来说两句吧...