python 10个高频率的自动化脚本(干货,速度收藏)

news2024/11/27 15:37:21

1. 文件操作:自动备份文件

场景:每日自动备份重要文件到指定目录。

import shutilimport datetimedef backup_file(src, dst_folder):    now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')    dst_path = f"{dst_folder}/backup_{now}_{src.split('/')[-1]}"    shutil.copy2(src, dst_path)    print(f"Backup created at {dst_path}")# 示例用法backup_file("/path/to/important_file.txt", "/path/to/backup_folder")

图片

2. 定时任务:定时发送邮件提醒

场景:每天早上9点自动发送邮件提醒。

import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerimport scheduleimport timedef send_email():    sender = 'your_email@example.com'    receiver = 'receiver@example.com'    password = 'your_password'    subject = 'Daily Reminder'    body = 'This is your daily reminder.'    msg = MIMEText(body, 'plain', 'utf-8')    msg['From'] = Header("Reminder", 'utf-8')    msg['To'] =  Header("Receiver", 'utf-8')    msg['Subject'] = Header(subject, 'utf-8')    try:        server = smtplib.SMTP_SSL('smtp.example.com', 465)        server.login(sender, password)        server.sendmail(sender, [receiver], msg.as_string())        print("Email sent successfully!")    except Exception as e:        print(f"Error sending email: {e}")    finally:        server.quit()schedule.every().day.at("09:00").do(send_email)while True:    schedule.run_pending()    time.sleep(1)

图片

3. 数据抓取:网页内容爬虫

场景:抓取网站新闻标题。​​​​​​​

import requestsfrom bs4 import BeautifulSoupdef scrape_news_titles(url):    response = requests.get(url)    soup = BeautifulSoup(response.text, 'html.parser')    titles = soup.find_all('h2')  # 假设新闻标题在标签中    for title in titles:              print(title.text.strip())# 示例用法      scrape_news_titles('https://news.example.com/latest-news')

图片

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

4. 图片批量重命名

场景:整理图片库,按日期重命名图片。​​​​​​​

import osfrom datetime import datetimedef rename_files(dir_path):    for i, filename in enumerate(os.listdir(dir_path)):        if filename.endswith('.jpg') or filename.endswith('.png'):            timestamp = datetime.now().strftime('%Y%m%d%H%M%S')            new_filename = f"img_{timestamp}_{i}.{filename.split('.')[-1]}"            os.rename(os.path.join(dir_path, filename), os.path.join(dir_path, new_filename))# 示例用法rename_files('/path/to/images/folder')

图片

5. 日志文件分析

场景:统计错误日志中错误出现次数。​​​​​​​

def analyze_logs(log_path, error_keyword):    error_count = 0    with open(log_path, 'r') as file:        for line in file:            if error_keyword in line:                error_count += 1    print(f"Error '{error_keyword}' occurred {error_count} times.")# 示例用法analyze_logs('/var/log/application.log', 'Error 500')

图片

6. 文件夹同步

场景:将本地目录与远程服务器的目录同步。

示例代码(使用rsync命令,通过ssh同步):​​​​​​​

import subprocessdef sync_folders(local_dir, remote_host, remote_dir, username):    # 构建rsync命令    cmd = f"rsync -avz --progress -e 'ssh' {local_dir}/' {username}@{remote_host}:{remote_dir}"    try:        subprocess.run(cmd, shell=True, check=True)        print("Sync completed successfully.")    except subprocess.CalledProcessError as e:        print(f"Error during sync: {e}")# 示例用法sync_folders('/local/path', 'remote.host.com:/remote/path', 'user')

图片

7. 数据库备份

场景:定期将数据库备份到本地或云存储。

示例代码(MySQL数据库备份到本地文件):​​​​​​​

import osimport subprocessdef mysql_backup(database, user, password, backup_path):    backup_file = f"{backup_path}/{database}_backup_{datetime.now().strftime('%Y%m%d%H%M%S')}.sql"    cmd = f'mysqldump -u{user} -p{password} {database} > {backup_file}'    subprocess.run(cmd, shell=True)    print(f"Backup saved to {backup_file}")# 示例用法mysql_backup('mydb', 'dbuser', 'dbpassword', '/path/to/backups')

图片

8. API监控

场景:定时检测API响应状态并通知异常。

示例代码(使用requests和SMTP发送邮件通知):​​​​​​​

import requestsimport smtplibfrom email.mime.text import MIMETextfrom datetime import datetimedef monitor_api(url, expected_status, email_sender, email_receiver, email_password):    response = requests.get(url)    if response.status_code != expected_status:        message = f"API [{url}] returned {response.status_code} at {datetime.now()}"        msg = MIMEText(message)        msg['Subject'] = "API Monitor Alert"        msg['From'] = email_sender        msg['To'] = email_receiver        with smtplib.SMTP_SSL('smtp.example.com', 465) as server:            server.login(email_sender, email_password)            server.sendmail(email_sender, email_receiver, msg.as_string())        print("Alert email sent.")    else:        print("API check passed.")# 示例用法monitor_api('https://api.example.com/health', 200, 'sender@example.com', 'receiver@example.com', 'password')

图片

9. 性能测试

场景:模拟高并发请求进行压力测试。

示例代码(使用locust库):​​​​​​​

from locust import HttpUser, task, betweenclass WebsiteUser(HttpUser):    wait_time = between(5, 15)    @task    def load_test(self):        self.client.get("/")# 通过命令行执行Locust# locust -f performance_test.py --host=https://targetsite.com --users=1000 --spawn-rate=100

图片

10. CI/CD流水线脚本

场景:自动部署代码到生产环境。

示例代码(使用fabric库进行SSH操作):​​​​​​​

from fabric import Connectionfrom invoke import rundef deploy_production(host, username, local_archive):    c = Connection(host, user=username)    remote_path = '/var/www/releases/'    with c.cd(remote_path):        c.put(local_archive)        run(f"tar -xzf {os.path.basename(local_archive)}")        run("rm -f {local_archive}")        run("ln -nfs $(ls -t -1 {remote_path} | head -n1) current")# 示例用法deploy_production('production.server.com', 'deployuser', '/path/to/app.tar.gz')

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1816273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

bugku---misc---ping

1、下载附件,解压后是一个流量包 2、用wireshark分析,发现都是清一色的icmp报文,只能看看内容。 3、点了几条流量,发现有个地方连起来是flag 4、最终将所有的拼起来,得到flag flag{dc76a1eee6e3822877ed627e0a04ab4a}…

CleanMyMac X软件最新版下载【安装详细图文教程】

​CleanMyMac X是一款专业的Mac清理软件,可智能清理mac磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级Mac上的应用,同时CleanMyMac X可以强力卸载恶意软件,修复系统漏洞,一键扫描和优化Mac系统…

nginx rewrite地址重写

常用的nginx正则表达式 ^匹配以...开头的字符串$匹配以...结尾的字符串^$^$表示空行*匹配前面的字符0次或者多次(通配符*表示任意数量的任意字符)匹配前面的字符1次或多次?匹配前面的字符0次或1次.匹配除了“\n”之外的任意单个字符,[.\n]表…

第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 试题F:括号与字母 【问题描述】 给定一个仅包含小写字母和括号的字符串 S …

少有人走的低风险创业之路:一人公司

大家好,我是弗雷!在前面的文章中,深入讨论了老板和员工思维的本质不同,非常值得普通人一看。接下来,我们将继续分享一人公司的话题。 一提到创业就认为风险很大? 只懂埋头苦干,不懂创新营销怎…

rocketmq-5.1.2的dleger高可用集群部署

1、背景 原先为5.0.0版本,因检查出有漏洞,升级到5.1.2版本。 【Rocketmq是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。在一定条件下&#xf…

如何手动实现multiSetIfAbsent、multiExpire

👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,目前工作于上海某电商服务公司…”); 📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正!共同进步,共同成长✊”); 🌟System.out.println(“💡如果文章对您有所帮助,希望您可以三…

C#操作MySQL从入门到精通(22)——创建表与操纵表

前言 我们新建数据库以后,最需要做的就是创建表,对数据库的操作绝大多数情况下都是都对表的操作,本文就是讲解如何创建表以及修改表中的列,修改表名等操作。由于创建表的方法基本上有两种,一种是使用带有界面的工具比如Navicate来创建表,另一种是使用sql语句来创建表,实…

rv1126-rv1109-串口显示路径不变化

串口只有#, 后来看了教程改成如下 但是没有变化,那个路径都只显示rootLonbon# 于是最后改成了这样 因为:

CSS函数: 实现数据限阈的数字函数

CSS函数中提供了几个比较实用的数字函数,它可以帮助我们实现一定的数学计算功能。常见的数字函数目前提供了五个:calc()、max()、min()和clamp()函数。其基本实现功能如下: calc():允许在声明 CSS 属性值时执行一些计算。max()&a…

数据结构 —— 堆

1.堆的概念及结构 堆是一种特殊的树形数据结构,称为“二叉堆”(binary heap) 看它的名字也可以看出堆与二叉树有关系:其实堆就是一种特殊的二叉树 堆的性质: 堆中某个结点的值总是不大于或不小于其父结点的值&…

ColorEasyDuino上手指南

介绍 ColorEasyDuino是嘉立创推出的一块Aduino开发板(类似物),具有丰富的外设接口:uart、i2c、spi、adc、pwm等;开发板设计参考原型是Arduino Uno,采用的芯片是ATMEGA328P,它的外观设计比较紧凑…

⌈ 传知代码 ⌋ MonoCon解读与复现

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

【Gradio】快速入门

https://www.gradio.app/ Gradio 是一个开源 Python 软件包https://github.com/gradio-app/gradio ,可以让你快速为机器学习模型、API 或任何任意 Python 函数创建一个演示或网络应用程序。然后,您就可以使用 Gradio 内置的分享功能,在几秒钟…

ROS2底层机制源码分析

init ->init_and_remove_ros_arguments ->init ->Context::init 保存初始化传入的信号 ->install_signal_handlers→SignalHandler::install 开线程响应信号 ->_remove_ros_arguments 移除ros参数 ->SingleNodeManager::instance().…

D-Bus——system 调用session 报错

以下代码是一个 session 服务和 systemd 服务 demo &#xff1a; systemd DBus #include <QCoreApplication> #include <QDBusConnection> #include <QDBusInterface> #include <QDBusError> #include <QDebug>class TestObject : public QObje…

一文搞懂flex布局

上学读书的时候&#xff0c;学习flex布局&#xff0c;更多停留在理论知识层面。近来&#xff0c;经过工作实践&#xff0c;发现自己对flex布局的理解更加深入&#xff0c;运用起来更加熟练&#xff0c;也越发能感受到flex布局的强大灵活性&#xff0c;特来总结一波。若有错误之…

Android Glide loading Bitmap from RESOURCE_DISK_CACHE slow,cost time≈2 seconds+

Android Glide loading Bitmap from RESOURCE_DISK_CACHE slow,cost time≈2 seconds 加载一张宽高约100px多些的小图&#xff0c;是一张相当小的正常图片&#xff0c;loading Bitmap from RESOURCE_DISK_CACHE竟然耗时达到惊人的3秒左右&#xff01;&#xff08;打开Glide调试…

元宇宙数字化3D虚拟展馆

随着科技的飞速发展&#xff0c;我们迎来了一个全新的时代——元宇宙时代。在这个充满无限可能的虚拟世界中&#xff0c;元宇宙数字展馆搭建编辑器应运而生&#xff0c;以其卓越的技术和创新的理念&#xff0c;为用户带来了前所未有的沉浸式展览体验。 元宇宙数字展馆搭建编辑器…

普涨和补涨—2024年上半年全球投资趋势

全球大宗商品价格处在上涨周期&#xff0c;东吴证券认为上游能源行业股价还有继续上涨的空间。随着6月全球股指进一步上涨&#xff0c;预计港股可能还会迎来补涨行情。 一、我们观察的全球投资趋势&#xff1a; 1、全球股指普涨&补涨。全球风险资产进入2024年后普遍上涨&am…