当前位置: 首页 > article >正文

你用 Python 写过哪些有趣的脚本?

爬虫、抢票、签到,常规的我都干过,事是办全了,但说不上有趣,直到我无意间发现了这个,才真正地打开了新世界的大门。

用Python做脚本是一件比较俗的事情,说到底,就是利用几行代码来解决一些繁琐复杂的问题,好让人腾出时间去干别的事情。

作为一名圈内人,提升效率都是小问题,只要给出需求场景,我们稍微把逻辑理一下,几行代码就能解决了,偶尔还能给圈外人开几个脚本,赚点小零花,但这种简单的乐趣确实满足不了我们。

无奈之下,只能去Github发发牢骚,没想到还真的被我翻到不少真家伙,粗略估计了一下,上千个脚本肯定是有的。

被我挖掘出来的东西,那自然是不能放过的,第一时间就来知乎分享给大家,脚本覆盖领域较多,包括算法、视频、音像、爬虫、web开发、文件处理、可视化、系统…我们待会来简单挑几个看看。

作者致力于打造Python经典小例子和脚本,就是为了告别枯燥,嗯,和我想一块去了。

25天前更新,说明里面的内容时效性有保证,每个项目还对应着难度系数,适合小白在入门的时候进行练习,提升编程能力。

其实这些案例都有给出源码,但有的人老是复制粘贴,单纯地为了解决问题而解决问题,不知道里面几十行代码的架构和逻辑是什么。

我一直给新入门的小伙伴强调,不要把别人的东西生搬硬套,拿到一个源码时,先去看对方为了解决什么问题,用了哪种架构,在语法的表达上选择了哪一种,在确定作者的思路后,你能不能以自己的架构来重建,从而实现相同的功能。

与其望洋兴叹,不如自己动手试试,实践才能出真知。

分享几个小案例:

  • 批量压缩文件
import zipfile # 导入zipfile,这个是用来做压缩和解压的Python模块;
import os
import timedef batch_zip(start_dir):start_dir = start_dir # 要压缩的文件夹路径file_news = start_dir + '.zip' # 压缩后文件夹的名字z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED)for dir_path, dir_names, file_names in os.walk(start_dir):# 这一句很重要,不replace的话,就从根目录开始复制f_path = dir_path.replace(start_dir, '')f_path = f_path and f_path + os.sep # 实现当前文件夹以及包含的所有文件的压缩for filename in file_names:z.write(os.path.join(dir_path, filename), f_path + filename)z.close()return file_newsbatch_zip('./data/ziptest')
  • 自动群发邮件
import smtplib
from email import (header)
from email.mime import (text, application, multipart)
import timedef sender_mail():smt_p = smtplib.SMTP()smt_p.connect(host='smtp.qq.com', port=25)sender, password = '113097485@qq.com', "**************"smt_p.login(sender, password)receiver_addresses, count_num = ['guozhennianhua@163.com', 'xiaoxiazi99@163.com'], 1for email_address in receiver_addresses:try:msg = multipart.MIMEMultipart()msg['From'] = "zhenguo"msg['To'] = email_addressmsg['subject'] = header.Header('这是邮件主题通知', 'utf-8')msg.attach(text.MIMEText('这是一封测试邮件,请勿回复本邮件~', 'plain', 'utf-8'))smt_p.sendmail(sender, email_address, msg.as_string())time.sleep(10)print('第%d次发送给%s' % (count_num, email_address))count_num = count_num + 1except Exception as e:print('第%d次给%s发送邮件异常' % (count_num, email_address))continue
smt_p.quit()sender_mail()

注意: 发送邮箱是qq邮箱,所以要在qq邮箱中设置开启SMTP服务,设置完成时会生成一个授权码,将这个授权码赋值给文中的password变量

  • melt透视数据小技巧

melt 方法固定某列为一个维度,组合其他列名为另一个维度,实现宽表融化为长表:

zip_code  factory  warehouse  retail
0     12345      100        200       1
1     56789      400        300       2
2    101112      500        400       3
3    131415      600        500       4

固定列zip_code,组合factorywarehouseretail 三个列名为一个维度,按照这种方法凑齐两个维度后,数据一定变长。

pandas 的 melt 方法演示如下:

In [49]: df = df.melt(id_vars = "zip_code")

若melt方法,参数value_vars不赋值,默认剩余所有列都是value_vars,所以结果如下:

zip_code   variable  value
0      12345    factory    100
1      56789    factory    400
2     101112    factory    500
3     131415    factory    600
4      12345  warehouse    200
5      56789  warehouse    300
6     101112  warehouse    400
7     131415  warehouse    500
8      12345     retail      1
9      56789     retail      2
10    101112     retail      3
11    131415     retail      4

若只想查看 factory 和 retail,则 value_vars 赋值为它们即可:

In [62]: df_melt2 = df.melt(id_vars = "zip_code",value_vars=['factory','reta...: il'])

结果:

zip_code variable  value
0     12345  factory    100
1     56789  factory    400
2    101112  factory    500
3    131415  factory    600
4     12345   retail      1
5     56789   retail      2
6    101112   retail      3
7    131415   retail      4

melt 透视数据后,因为组合多个列为1列,所以数据一定变长。

方法还很多,我就不一一列举了,感兴趣的朋友们可以自己去Github上面翻翻,说不定就有意外惊喜。

入门小白不需要灰心,在你print出Hello World的那一刻,你已经踏出了编程的第一步,后面的每一步都会因为你第一步的惯性,越走越顺,坚持看完一本书,一套教程,好好跟着案例敲代码,进行理解,编程没有你想的这么难。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.lryc.cn/news/2418655.html

相关文章:

  • 博客系统第1关:博客系统之用户注册
  • 一文读懂面试官都在问的Log4J2漏洞
  • 95-260-058-源码-检查点-CheckpointBarrierHandler
  • 一款挂靠QQ的盗号木马清理记
  • VOIP
  • Zephry开发指南——环境变量
  • 【CTF之Crypto】与佛论禅解密~罰亦般諳醯至上闍切羯哆究南缽寫奢婆罰夢梵究怯娑
  • 十大轻量级Linux发行版汇总
  • Exchange 2007邮件服务器的搭建和部署
  • 解决Linux国内yum源不能用的问题
  • 百度识图原理分析 推测其发展方向…
  • BCG 动态链接库和静态链接库
  • 【鸿蒙】数据管理--关系型数据库
  • 电子邮件注册网站是什么,163电子邮件注册流程详解
  • 将软件安装到SD卡丨丨完整详细Link2SD教程(包括SD分区教程)
  • Struts2 验证码图片实例
  • 驻极体式MIC电路设计
  • 安卓联系人头像包_【IOS/安卓】你肯定会喜欢的一款神器
  • .net core ef oracle,.NET Core EntityFrameworkCore(EF Core)介绍
  • 网页指针css代码,css常用鼠标指针形状代码
  • php socket 教程,php实现socket的方法
  • Java中的递归(recursion)方法----简单介绍加演示
  • win7 32位系统中xlive.dll缺失,如何有效解决?
  • 移动磁盘已用空间0字节要如何办啊
  • 金山卫士开源了
  • js函数明明定义了却报未定义错误
  • Flash player debug版下载
  • Opengl es2.0 学习笔记(一)初始化
  • Android studio4.1 构建项目遇到的一些问题总结
  • 诺基亚808 PureView