精选9个自动化任务的Python脚本精选

大家好,我是老邓,今天我们来一起学习如何用Python进行一些常见的自动化操作,涉及文件处理、网络交互等实用技巧。即使你没有任何Python基础也没关系,我会用最通俗易懂的语言来讲解。

1. 对目录中的文件进行排序

import osdef sort_files(dir_path):"""对指定目录下的文件进行排序。"""files = os.listdir(dir_path)  # 获取目录下所有文件和文件夹的名称files.sort()  # 按文件名排序print(f"排序后的文件列表:{files}")# 示例用法
sort_files(".")  # 对当前目录下的文件排序

 

2. 删除空文件夹

import os
import shutildef remove_empty_dirs(dir_path):"""递归删除指定目录下的空文件夹。"""for item in os.listdir(dir_path):item_path = os.path.join(dir_path, item)if os.path.isdir(item_path): # 判断是否为文件夹if not os.listdir(item_path): #判断文件夹是否为空shutil.rmtree(item_path)  # 删除空文件夹print(f"已删除空文件夹:{item_path}")else:  # 如果子文件下还有文件夹则递归删除remove_empty_dirs(item_path)# 示例用法(创建一个空文件夹进行测试)
os.makedirs("empty_dir", exist_ok=True)
remove_empty_dirs(".")

 

3. 重命名多个文件

import osdef rename_files(dir_path, prefix="new_"):"""批量重命名指定目录下的文件。"""i = 1for filename in os.listdir(dir_path):if os.path.isfile(os.path.join(dir_path, filename)): # 判断是否为文件base, ext = os.path.splitext(filename)  # 分离文件名和扩展名new_name = f"{prefix}{i}{ext}"os.rename(os.path.join(dir_path, filename), os.path.join(dir_path, new_name)) # 重命名print(f"已将 {filename} 重命名为 {new_name}")i += 1# 示例用法(需要在目录下创建一些测试文件)
# create_test_files(".")  # 假设你创建了几个测试文件
# rename_files(".")

 

4. 从网站提取数据 (示例:提取标题)

import requests
from bs4 import BeautifulSoupdef extract_title(url):"""提取指定网页的标题。"""try:response = requests.get(url)response.raise_for_status()  # 检查请求是否成功soup = BeautifulSoup(response.content, "html.parser")title = soup.title.string  # 获取标题print(f"网页标题:{title}")return titleexcept requests.exceptions.RequestException as e:print(f"请求出错:{e}")return None# 示例用法
extract_title("https://www.mayobang.com")

 

5. 批量下载网站图片 (示例:下载指定网页的所有图片)

import requests
import os
from bs4 import BeautifulSoup
from urllib.parse import urljoindef download_images(url, save_dir="images"):"""下载指定网页的所有图片。"""try:response = requests.get(url)response.raise_for_status()soup = BeautifulSoup(response.content, "html.parser")os.makedirs(save_dir, exist_ok=True)  # 创建保存目录for img in soup.find_all("img"):img_url = urljoin(url, img.get("src"))  # 获取图片的完整URLtry:img_data = requests.get(img_url).contentfilename = os.path.join(save_dir, os.path.basename(img_url))with open(filename, "wb") as f:f.write(img_data)print(f"已下载图片:{img_url}")except Exception as e:print(f"下载图片出错:{e}")except Exception as e:print(f"出错:{e}")# 示例用法 (请替换为实际的网址)
# download_images("https://www.example.com/images") 

 

6. 自动提交表单 (示例:简单表单提交)

import requestsdef submit_form(url, data):"""自动提交表单。"""try:response = requests.post(url, data=data)response.raise_for_status()print(f"表单提交成功:{response.text}")except requests.exceptions.RequestException as e:print(f"表单提交失败:{e}")# 示例用法(需要一个实际的表单提交URL和数据)
# sample_data = {"name": "老邓", "email": "laodeng@example.com"}
# submit_form("https://www.example.com/submit", data=sample_data)

7. 计算文本文件中的字数

def count_words(filepath):"""计算文本文件中的字数。"""try:with open(filepath, "r", encoding="utf-8") as f: # 使用utf-8编码读取文件content = f.read()word_count = len(content)print(f"文件 {filepath} 中的字数为:{word_count}")except FileNotFoundError:print(f"文件未找到:{filepath}")# 示例用法 (需要创建一个测试文件 test.txt)
with open("test.txt", "w") as f:f.write("你好,世界!")count_words("test.txt")

 

8. 文件中的文本查找和替换

import redef find_and_replace(filepath, pattern, replacement):"""在文件中查找并替换文本。"""try:with open(filepath, "r+", encoding="utf-8") as f:content = f.read() # 读取文件内容new_content = re.sub(pattern, replacement, content) #用正则表达式替换f.seek(0) # 将文件指针移到开头f.write(new_content) # 写入替换后的内容f.truncate() # 删除多余内容print(f"已在文件 {filepath} 中完成替换。")except FileNotFoundError:print(f"文件未找到:{filepath}")# 示例用法
find_and_replace("test.txt", "世界", "Python")

9. 生成随机文本

import random
import stringdef generate_random_text(length=10):"""生成指定长度的随机文本。"""letters = string.ascii_letters + string.digits  # 包含字母和数字random_text = ''.join(random.choice(letters) for i in range(length))print(f"生成的随机文本:{random_text}")# 示例用法
generate_random_text(20)

 

总结: 今天的课程涵盖了文件操作和网络交互的多个自动化脚本,希望大家能动手实践,加深理解。

熟练掌握这些技巧,能大大提高你的工作效率。请关注老邓的Python入门教室,我们下次再见!

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

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

相关文章

MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结

文章目录 MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结一、引言二、临时表与内存表的区别(一)内存表(二)临时表 三、临时表的特性(一)可见性与生命周期(二)与…

MATLAB符号计算-符号表达式基础运算操作

1.1.2符号变量取值域的限定 默认复数域 【例1-1-2】解不等式 1.1.3创建符号表达式 对符号对象进行各种运算(算术运算、关系运算、逻辑运算),即可创建符号表达式。 1.算术运算与转置 【例1-1-3】 f5是f4的共轭转置 f6是f4的转置 2.关系…

深度学习-78-大模型量化之Quantization Aware Training量化感知训练QAT

文章目录 1 量化感知训练1.1 QAT的核心思想1.2 QAT的工作原理1.2.1 第一个维度1.2.2 第二个维度2 大模型的1-bits时代BitNet2.1 BitLinear层2.2 权重量化2.3 激活量化2.4 反量化3 大模型处于1.58Bits状态3.1 零值的作用3.2 量化3.3 效果4 参考附录1 量化感知训练 PTQ方法的一个…

(亲测)frp对外提供简单的文件访问服务-frp静态文件效果

话说有一天,希望将软件安装包放到网上,希望类似如下效果,正好在调试frp docker版,看到frp有个【对外提供简单的文件访问服务】功能,网上搜索也没相关效果图,所以顺手测试一下,截了几张图&#x…

基于YOLOV5+Flask安全帽RTSP视频流实时目标检测

1、背景 在现代工业和建筑行业中,安全始终是首要考虑的因素之一。特别是在施工现场,工人佩戴安全帽是确保人身安全的基本要求。然而,人工监督难免会有疏漏,尤其是在大型工地或复杂环境中,确保每个人都佩戴安全帽变得非…

LabVIEW数字式气压计自动检定系统

开发了一个基于LabVIEW开发的数字式气压计自动检定系统。在自动化检定PTB220和PTB210系列数字气压计,通过优化硬件组成和软件设计,实现高效率和高准确度的检定工作,有效降低人力成本并提升操作准确性。 项目背景 随着自动气象站的广泛部署&a…

FPGA的DMA应用——pcileech

硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。 学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现…

【漫话机器学习系列】022.微积分中的链式求导法则(chain rule of Calculus)

链式求导法则(Chain Rule of Calculus) 链式求导法则是微积分中的重要工具,用于处理复合函数的求导。它描述了如何计算一个函数的函数(复合函数)的导数。 1. 链式法则的定义 假设有一个复合函数 y f(g(x))&#xff…

TP5 动态渲染多个Layui表格并批量打印所有表格

记录: TP5 动态渲染多个Layui表格每个表格设置有2行表头,并且第一行表头在页面完成后动态渲染显示内容每个表格下面显示统计信息可点击字段排序一次打印页面上的所有表格打印页面上多个table时,让每个table单独一页 后端代码示例: /*** Nod…

开发微信小程序的过程与心得

起因 作为家长,我近期参与了学校的护学岗工作。在这个过程中,我发现需要使用水印相机来记录护学活动,但市面上大多数水印相机应用都要求开通会员才能使用完整功能。作为一名程序员,我决定利用自己的技术背景,开发一个…

新建一个springboot项目

注意版本注意版本注意版本!!! 参考: 我的IDEA 2022.2.3 是通过IDEA内嵌的功能来完成该项目的创建的。 一、创建 其实按截图走就够了,别弄的太麻烦了。 注意版本 注意,springboot的版本要是最新的&…

机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差

注:本文为 “keyence 视觉沙龙中机器视觉检测基础知识” 文章合辑。 机器视觉检测基础知识(一)颜色篇 视觉检测硬件构成的基本部分包括:处理器、相机、镜头、光源。 其中,和光源相关的最重要的两个参数就是光源颜色和…

7. petalinux 根文件系统配置(package group)

根文件系统配置(Petalinux package group) 当使能某个软件包组的时候,依赖的包也会相应被使能,解决依赖问题,在配置页面的help选项可以查看需要安装的包 每个软件包组的功能: packagegroup-petalinux-audio包含与音…

接口测试Day03-postman断言关联

postman常用断言 注意:不需要手敲,点击自动生成 断言响应状态码 Status code:Code is 200 //断言响应状态码为 200 pm.test("Status code is 200", function () {pm.response.to.have.status(200); });pm: postman的实例 test() …

Python vs PHP:哪种语言更适合网页抓取

本文将比较 Python 和 PHP,以帮助读者确定哪种语言更适合他们的需求。文章将探讨两种语言的优点和缺点,并根据读者的经验水平分析哪种语言可能更容易上手。接下来,文章将深入探讨哪种语言在抓取网页数据方面更胜一筹。 简而言之,…

五分钟学会如何在GitHub上自动化部署个人博客(hugo框架 + stack主题)

上一篇文章: 10分钟学会免费搭建个人博客(Hugo框架 stack主题) 前言 首先,想要实现这个功能的小伙伴需要完成几个前置条件: 有一个GitHub账号安装了git,并可以通过git推送commit到GitHub上完成第一篇文章…

开发过程中的AI插件推荐

在ChatGPT日渐火爆的当下,开发工具中的各种AI插件也日渐成熟,在开发过程中能给予我们很大的助力,并大幅节省研发时间和成本,所以学会学会使用AI目前已算是必不可少的技能了。 一. CodeGeex(智谱清言) CodeGeeX是智谱AI旗下一款基…

鸿蒙之路的坑

1、系统 Windows 10 家庭版不可用模拟器 对应的解决方案【坑】 升级系统版本 直接更改密钥可自动升级系统 密钥找对应系统的(例:windows 10专业版) 升级完之后要激活 坑1、升级完后事先创建好的模拟器还是无法启动 解决:删除模拟…

企业销售人员培训系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

C 实现植物大战僵尸(一)

C 实现植物大战僵尸(一) 对应资源链接,C语言项目:完整版植物大战僵尸 以下内容为个人实现版,与原 UP 主项目代码内容有出入,提高了些可读和简洁性 一 创建主场景 安装 easyx 库,easyx 官网 …