【Python入门】20个Python自动化脚本,解放双手、事半功倍

 如果你正在学习Python,那么你需要的话可以,点击这里👉Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享!


在当今的快节奏工作环境中,自动化不再是一种奢侈,而是提高效率和精确性的必需手段。Python,以其易于学习和强大的功能而闻名,成为实现各种自动化任务的理想选择。无论是数据处理、报告生成,还是日常的文件管理,一个简单但有效的Python脚本就能大幅减轻您的工作负担。在本文中,我们将探索如何使用Python来创建多个自动化脚本,它不仅能够节省您的时间,还可以提高工作的准确率和效率。我们先来看第一个自动化脚本

自动化文件管理

整理目录中的文件

import os
from shutil import movedef sort_files(directory_path):for filename in os.listdir(directory_path):if os.path.isfile(os.path.join(directory_path, filename)):# 获取文件扩展名file_extension = filename.split('.')[-1]# 创建目标目录destination_directory = os.path.join(directory_path, file_extension)if not os.path.exists(destination_directory):os.makedirs(destination_directory)# 移动文件move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))# 调用函数,替换路径
sort_files('your_directory_path')

这段代码包含一个名为sort_files的函数,它接受一个目录路径作为参数。函数遍历指定目录中的所有文件,并检查每个文件是否是一个常规文件(非目录等)。对于每个文件,它提取出文件的扩展名,创建一个以该扩展名命名的新目录(如果该目录不存在的话),然后将文件移动到新创建的对应扩展名的目录中。

移除空白的文档

import osdef remove_empty_folders(directory_path):# 遍历目录树for root, dirs, files in os.walk(directory_path, topdown=False):for folder in dirs:folder_path = os.path.join(root, folder)# 如果目录为空,则删除if not os.listdir(folder_path):os.rmdir(folder_path)# 替换下面的路径为自己想清理的目录的路径
remove_empty_folders('your_directory_path')

这段代码定义了一个名为remove_empty_folders的函数,它接受一个目录路径作为参数。函数使用os.walk遍历给定目录及其所有子目录。os.walk函数以topdown=False的方式执行,这意味着遍历将从目录树的最底层开始,确保在删除空目录之前已处理了所有子目录。

对于每个找到的目录,代码检查该目录是否为空(即不包含任何文件或子目录)。如果是空目录,它就使用os.rmdir函数将其删除。

多个文件的重命名

import osdef rename_files(directory_path, old_name, new_name):# 遍历目录中的所有文件for filename in os.listdir(directory_path):# 检查文件名中是否包含旧名称if old_name in filename:# 生成新的文件名new_filename = filename.replace(old_name, new_name)# 重命名文件os.rename(os.path.join(directory_path, filename), os.path.join(directory_path, new_filename))# 替换下面的路径和名称
# 例如 directory_path: 您要重命名文件的目录路径
rename_files('your_directory_path', 'old_name', 'new_name')

这段代码定义了一个名为rename_files的函数,它接受三个参数:要处理的目录的路径、需要被替换的旧名称、以及新名称。该函数遍历指定目录中的所有文件,检查每个文件名是否包含旧名称。如果包含,它会用str.replace方法生成一个新的文件名,然后使用os.rename方法将文件重命名。

Excel办公自动化软件

读取和写入

import pandas as pddef read_excel(file_path):# 读取Excel文件df = pd.read_excel(file_path)return dfdef write_to_excel(data, file_path):# 将数据写入Excel文件df = pd.DataFrame(data)df.to_excel(file_path, index=False)# 读取Excel文件
dataframe = read_excel('path_to_your_input_file.xlsx')# 将修改后的数据写入新的Excel文件
write_to_excel(dataframe, 'path_to_your_output_file.xlsx')

我们主要是调用pandas模块中的read_excel函数接受一个文件路径作为参数并且读取Excel文件,并将其作为DataFrame返回。write_to_excel函数则接受一个数据集和一个输出文件路径,将数据集转换为DataFrame,然后使用to_excel方法写入Excel文件。在to_excel方法中,index=False参数表示在输出的Excel文件中不包括行索引。

合并多个工作表

import pandas as pddef merge_sheets(file_path, output_file_path):# 打开Excel文件xls = pd.ExcelFile(file_path)# 创建一个空的DataFramedf = pd.DataFrame()# 遍历所有工作表for sheet_name in xls.sheet_names:# 读取每个工作表sheet_df = pd.read_excel(xls, sheet_name)# 将每个工作表的数据追加到df中df = df.append(sheet_df, ignore_index=True)# 将合并后的数据写入新的Excel文件df.to_excel(output_file_path, index=False)# 替换为自己的文件路径
merge_sheets('path_to_your_excel_file.xlsx', 'path_to_your_output_file.xlsx')

这段代码定义了一个名为merge_sheets的函数,它接受原始Excel文件的路径和输出文件的路径作为参数。函数首先使用pd.ExcelFile读取Excel文件,并创建一个空的DataFrame。然后,它遍历该Excel文件中的所有工作表,使用pd.read_excel逐个读取它们,并通过append方法将每个工作表的数据追加到之前创建的空DataFrame中。这里使用了ignore_index=True,意味着在合并数据时会重新生成索引。

最后,使用to_excel方法将合并后的数据保存到一个新的Excel文件中。在这个方法中,index=False参数表示在输出文件中不包括行索引。

图片处理

图片的修剪

from PIL import Imagedef resize_image(input_path, output_path, width, height):# 打开图片image = Image.open(input_path)# 调整图片大小resized_image = image.resize((width, height), Image.ANTIALIAS)# 保存调整后的图片resized_image.save(output_path)def crop_image(input_path, output_path, left, top, right, bottom):# 打开图片image = Image.open(input_path)# 裁剪图片cropped_image = image.crop((left, top, right, bottom))# 保存裁剪后的图片cropped_image.save(output_path)# 替换为自己的文件路径和参数
resize_image('path_to_input_image.jpg', 'path_to_resized_image.jpg', 800, 600)
crop_image('path_to_input_image.jpg', 'path_to_cropped_image.jpg', 100, 100, 400, 400)

resize_image函数中,它接受输入路径、输出路径、以及新图片的宽度和高度作为参数。该函数使用PIL库打开图片,然后调用resize方法将图片大小调整为指定的宽度和高度。

crop_image函数接受输入路径、输出路径,以及裁剪区域的左、上、右、下四个坐标作为参数。该函数同样使用PIL库打开图片,然后使用crop方法根据提供的坐标裁剪图片。

添加水印

from PIL import Image, ImageDraw, ImageFontdef add_watermark(input_path, output_path, watermark_text):# 打开图片image = Image.open(input_path)# 准备绘制对象draw = ImageDraw.Draw(image)# 设置字体(这里使用Arial,大小为36)font = ImageFont.truetype('arial.ttf', 36)# 在图片上添加水印文字draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)# 保存带有水印的图片image.save(output_path)# 替换为自己的文件路径和水印文本
add_watermark('path_to_input_image.jpg', 'path_to_watermarked_image.jpg', 'Your Watermark Text')

这段代码定义了一个名为add_watermark的函数,它接受输入图片的路径、输出图片的路径和水印文本作为参数。该函数首先使用PIL库打开图片,然后创建一个ImageDraw对象以便在图片上绘制文本。接下来,设置字体(本例中使用Arial字体,字号为36),并使用draw.text方法将水印文本绘制到图片上。最后,保存带有水印的图片到指定的输出路径。

创建缩略图

from PIL import Imagedef create_thumbnail(input_path, output_path, size=(128, 128)):# 打开图片image = Image.open(input_path)# 创建缩略图image.thumbnail(size)# 保存缩略图image.save(output_path)# 替换为自己的文件路径
create_thumbnail('path_to_input_image.jpg', 'path_to_thumbnail_image.jpg')

在这段代码中,create_thumbnail函数接受三个参数:输入图片的路径、输出图片的路径,以及缩略图的尺寸(默认为128x128像素)。函数使用PIL库打开原始图片,然后调用thumbnail方法来创建缩略图。

系统任务

系统进程管理

import psutildef get_running_processes():# 获取当前运行的进程信息return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])]def kill_process_by_name(process_name):# 遍历当前运行的进程for p in psutil.process_iter(['pid', 'name', 'username']):# 如果进程名匹配,则终止进程if p.info['name'] == process_name:p.kill()# 获取运行中的进程列表
running_processes = get_running_processes()# 杀死指定名称的进程(请谨慎使用)
# kill_process_by_name('process_name_here')

get_running_processes函数中,使用psutil.process_iter方法来迭代当前运行的所有进程,并获取每个进程的pid(进程ID)、name(进程名)和username(运行该进程的用户)。这些信息被收集在一个列表中并返回。

kill_process_by_name函数也使用psutil.process_iter来遍历所有进程,但它检查每个进程的名称是否与给定的process_name相匹配。如果找到匹配的进程,它使用kill方法终止该进程。

PDF文件操作

多个PDF文件合并

import PyPDF2def merge_pdfs(input_paths, output_path):# 创建PDF合并器对象pdf_merger = PyPDF2.PdfMerger()# 遍历所有输入路径并添加到合并器for path in input_paths:with open(path, 'rb') as f:pdf_merger.append(f)# 将合并后的PDF写入输出文件with open(output_path, 'wb') as f:pdf_merger.write(f)# 替换为自己的PDF文件路径
input_pdf_paths = ['pdf1.pdf', 'pdf2.pdf', 'pdf3.pdf']
output_pdf_path = 'merged.pdf'
merge_pdfs(input_pdf_paths, output_pdf_path)

在这个脚本中,merge_pdfs函数接受两个参数:一个包含要合并的PDF文件路径的列表input_paths和一个输出文件路径output_path。函数首先创建了一个PyPDF2.PdfMerger对象,然后逐个打开输入列表中的PDF文件,并使用append方法将它们添加到合并器中。最后,使用write方法将合并后的PDF输出到指定的文件路径。

PDF文件密码保护

import PyPDF2def add_password_protection(input_path, output_path, password):# 打开要加密的PDF文件with open(input_path, 'rb') as f:pdf_reader = PyPDF2.PdfFileReader(f)pdf_writer = PyPDF2.PdfFileWriter()# 复制所有页面到写入器对象for page_num in range(pdf_reader.numPages):page = pdf_reader.getPage(page_num)pdf_writer.addPage(page)# 为PDF文件设置密码pdf_writer.encrypt(password)# 写入加密后的PDF到输出文件with open(output_path, 'wb') as output_file:pdf_writer.write(output_file)# 请替换为自己的文件路径和密码
input_pdf_path = 'input.pdf'
output_pdf_path = 'protected.pdf'
password = 'your_password'
add_password_protection(input_pdf_path, output_pdf_path, password)

在这段代码中,add_password_protection函数接受输入文件路径input_path、输出文件路径output_path和密码password作为参数。它首先打开输入的PDF文件,使用PyPDF2.PdfFileReader读取PDF内容。然后,创建一个PyPDF2.PdfFileWriter对象,将从读取器对象中获取的所有页面添加到写入器对象中。使用encrypt方法为PDF设置密码。最后,将加密后的PDF内容写入到输出文件中。

如果你正在学习Python,那么你需要的话可以,点击这里👉Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享!或扫描下方CSDN官方微信二维码获娶Python入门&进阶全套学习资料、电子书、软件包、项目源码

 

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

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

相关文章

下一代性能怪兽RTX 5090最新规格更新与Blackwell架构解析

据悉,目前各家AIC厂商已经陆续收到NVIDIA的相关资料,RTX 5090、RTX 5080已经正式进入开案阶段,也就是厂商们开始设计各自的产品方案了。不出意外,年初的CES 2025上会看到RTX 5090/5080的发布。 作为NVIDIA的新一代GPU&#xff0c…

【车联网安全】车端知识调研

一、CAN总线: 1、定义: CAN 总线相当于汽车的神经网络,连接车内各控制系统,其通信采用广播机制,各连接部件均可收发控制消息,通信效率高,可确保通信实时性。当前市场上的汽车至少拥有一个CAN网络&#xff0…

Leetcode 3302. Find the Lexicographically Smallest Valid Sequence

Leetcode 3302. Find the Lexicographically Smallest Valid Sequence 1. 解题思路2. 代码实现 题目链接:3302. Find the Lexicographically Smallest Valid Sequence 1. 解题思路 这一题的话由于至多只能够修改一个字符,因此,我们就是要考…

如何进行“服务器内部错误”的诊断 | OceanBase诊断案例

本文作者:任仲禹,爱可生数据库高级工程师,擅长故障分析和性能优化。 的OMS迁移工具具备丰富的功能。但在实际运维场景中,我们可能会遇到各种问题,其中“服务器内部错误”便是一个较为棘手的问题,因为界面上…

PHP 递归遍历目录

本篇文章主要内容为PHP 两种循环递归遍历目录的示例。 目录 while循环 foreach循环 调用及结果 总结 while循环 应用while循环和opendir、readdir函数处理读取路径下所有文件和目录。 具体代码如下: function getDir($path, $space ) {$dir opendir($path)…

【易上手快捷开发新框架技术】nicegui标签组件lable用法庖丁解牛深度解读和示例源代码IDE运行和调试通过截图为证

传奇开心果微博文系列 序言一、标签组件lable最基本用法示例1.在网页上显示出 Hello World 的标签示例2. 使用 style 参数改变标签样式示例 二、标签组件lable更多用法示例1. 添加按钮动态修改标签文字2. 点击按钮动态改变标签内容、颜色、大小和粗细示例代码3. 添加开关组件动…

PHP“===”的意义

在PHP中, 运算符被称为“恒等比较运算符”(Identical Comparison Operator),它用于比较两个变量的值和类型是否完全相同。这个运算符与双等号 (等值比较运算符)不同,后者在比较时会对两边的值进…

美图AI短片创作工具MOKI全面开放 支持生成配乐、细节修改

人工智能 - Ai工具集 - 集合全球ai人工智能软件的工具箱网站 美图公司近日宣布,其研发的AI短片创作工具MOKI已正式向所有用户开放。这款专注于AI短片创作的工具,提供了包括动画短片、网文短剧等多种类型视频内容的生成能力,致力于为用户带来…

uni-app之旅-day02-分类页面

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言创建cate分支4.1 渲染分类页面的基本结构4.2 获取分类数据4.3 动态渲染左侧的一级分类列表4.4 动态渲染右侧的二级分类列表4.5 动态渲染右侧的三级分类列表4.6 …

linux上,进程管理

命令 ps aux 是一个在 Unix 和类 Unix 系统中非常常用的命令,用于显示当前系统中的运行中的进程信息。这个命令可以提供关于各个进程的详细信息,包括进程ID、CPU 和内存使用率、进程状态、启动时间等。让我们来详细解释一下 ps aux 命令的各个部分&#…

linux-CMake

linux-CMake 1.安装CMake工具2.单个源文件3.多个源文件4.生成库文件5.将源文件组织到不同的目录下6.可执行文件和库文件放置到单独的目录下7.常见的命令 CMake使用。 1.安装CMake工具 sudo apt-get install cmake2.单个源文件 1.先在文件夹里创建两个文件:main.c&…

Vscode超好看的渐变主题插件

样式效果: 插件使用方法: 然后重启,之后会显示vccode损坏,不用理会,因为这个插件是更改了应用内部代码,直接不再显示即可。

cesium实战代码

代码中有一点bug还没改 cesium地球 地形+地形 <html lang="en"><head><style>.cesium-animation-rectButton .cesium-animation-buttonGlow {filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain {fil…

Win32打开UWP应用

最近无意间发现Windows里一个神奇的文件夹。 shell:appsfolder 运行打开 这个文件夹后&#xff0c;你可以看到本机安装的所有应用程序。 我觉得这个挺方便的&#xff0c;所以做了一个简单的appFolderDialog包给C#用 项目地址&#xff1a;https://github.com/TianXiaTech/App…

React Native、Uni-app、Flutter优缺点对比

React Native、Uni-app、Flutter作为三种主流的跨平台开发框架&#xff0c;各自具有独特的优缺点。以下是对这三种框架的优缺点进行的详细对比&#xff1a; React Native 优点&#xff1a; 社区生态丰富&#xff1a;背靠Facebook&#xff0c;拥有庞大的社区支持和丰富的组件…

基于单片机的多路温度检测系统

**单片机设计介绍&#xff0c;基于单片机CAN总线的多路温度检测系统设计 文章目录 前言概要功能设计设计思路 软件设计效果图 程序设计程序 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探…

总结拓展十一:S4 HANA和ECC区别

第一节 S/4 HANA系统简介 SAP系统的产品线 R/1版本——主要财务模块R/3版本——基本实现全模块ECC6.0——2005年推出&#xff08;ECC是2004年推出&#xff09;HANA——数据库产品——属于内存数据库BW on HANA——HANA与数据分析相结合 拓展&#xff1a; 数据库类型&#x…

【如何在Linux系统本地快速部署Leanote蚂蚁笔记】

文章目录 前言1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装cpolar内网穿透4. 固定Leanote蚂蚁笔记公网地址 前言 本篇文章主要介绍如何在Linux系统本地快速部署Leanote蚂蚁笔记&#xff0c;并且结合cpolar内网穿透实现公网远程访问本地笔记编辑并制作个人博客等。 …

外卖点餐小程序源码系统 单店多门店自助切换 带完整的安装代码包以及搭建部署教程

系统概述 本外卖点餐小程序源码系统旨在帮助餐饮企业和商家快速搭建一个功能完善的在线外卖平台。系统支持单店与多门店的灵活切换&#xff0c;方便商家根据自身业务需求进行管理和运营。同时&#xff0c;系统还提供了丰富的营销工具和数据分析功能&#xff0c;助力商家实现精…

元数据驱动的设想

本文永久更新地址: 1.背景 针对相似结构的表单&#xff0c;为了提高ui自动化编写效率&#xff0c;减少以减少重复工作&#xff0c;设想是否可以设计一个针对neoUI2.0通过元数据驱动的方式适应不同业务对象的测试框架 2.设计元数据模型 - 字段名 - 字段类型 - 是否必填 -是…