分享10个拿来即用的Python自动化脚本

 更新时间:2023年12月01日 11:42:10   作者:Python之禅  
这篇文章主要来和大家分享10个拿来即用的Python自动化脚本,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下

今天分享10个简单且实用的Python自动化脚本,适用于日常工作中的各种任务。

1. 批量修改文件扩展名

将指定目录下所有特定扩展名的文件更改为新的扩展名。

import os

def rename_file_extensions(folder_path, old_ext, new_ext):
    for filename in os.listdir(folder_path):
        if filename.endswith(old_ext):
            base = os.path.splitext(filename)[0]
            new_filename = base + new_ext
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))

# 使用示例:将所有.txt文件改为.md
rename_file_extensions('/path/to/folder', '.txt', '.md')

2. 自动创建多个文件夹

快速创建一系列以数字或日期命名的文件夹。

import os

def create_folders(base_path, prefix, count):
    for i in range(1, count + 1):
        os.makedirs(os.path.join(base_path, f"{prefix}{i}"))

# 使用示例:在指定路径下创建10个名为"Folder1"到"Folder10"的文件夹
create_folders('/path/to/base', 'Folder', 10)

3. 下载网络图片

根据提供的URL列表下载图片。

import requests

def download_images(url_list, save_folder):
    for url in url_list:
        img_data = requests.get(url).content
        filename = url.split('/')[-1]
        with open(os.path.join(save_folder, filename), 'wb') as file:
            file.write(img_data)

# 使用示例
url_list = ['http://example.com/image1.jpg', 'http://example.com/image2.jpg']
download_images(url_list, '/path/to/save/folder')

4. 简单的文件搜索工具

在指定目录下搜索包含特定文本的文件。

import os

def search_files(directory, text):
    for filename in os.listdir(directory):
        if text in filename:
            print(os.path.join(directory, filename))

# 使用示例:在目录中搜索包含"report"的文件
search_files('/path/to/directory', 'report')

5. 批量删除特定扩展名的文件

在指定目录中删除所有特定扩展名的文件。

import os

def delete_files_by_extension(folder_path, extension):
    for filename in os.listdir(folder_path):
        if filename.endswith(extension):
            os.remove(os.path.join(folder_path, filename))

# 使用示例:删除所有扩展名为.tmp的文件
delete_files_by_extension('/path/to/folder', '.tmp')

6. CSV文件转换为JSON

将CSV文件的内容转换为JSON格式。

import csv
import json

def csv_to_json(csv_file_path, json_file_path):
    with open(csv_file_path, 'r') as csv_file, open(json_file_path, 'w') as json_file:
        reader = csv.DictReader(csv_file)
        json_data = [row for row in reader]
        json.dump(json_data, json_file, indent=4)

# 使用示例
csv_to_json('/path/to/file.csv', '/path/to/file.json')

7. 监控文件夹变化

实时监控指定文件夹的变化(如文件添加、删除、修改)。

import time
import os

def monitor_folder_changes(folder_path):
    initial_files = set(os.listdir(folder_path))
    while True:
        current_files = set(os.listdir(folder_path))
        new_files = current_files - initial_files
        deleted_files = initial_files - current_files
        if new_files:
            print(f"Added: {new_files}")
        if deleted_files:
            print(f"Deleted: {deleted_files}")
        initial_files = current_files
        time.sleep(1)

# 使用示例:监控指定文件夹
monitor_folder_changes('/path/to/monitor')

8. 简单的网页内容抓取

抓取网页的标题。

import requests
from bs4 import BeautifulSoup

def fetch_webpage_title(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')
    return soup.title.text

# 使用示例
title = fetch_webpage_title('http://example.com')
print(title)

9. 批量修改图片尺寸

更改指定文件夹中所有图片的尺寸。

from PIL import Image
import os

def resize_images(folder_path, output_folder, size):
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            img = Image.open(os.path.join(folder_path, filename))
            img = img.resize(size, Image.ANTIALIAS)
            img.save(os.path.join(output_folder, filename))

# 使用示例:将所有图片尺寸修改为500x500
resize_images('/path/to/images', '/path/to/output', (500, 500))

10. 批量压缩PDF文件

减小指定目录中所有PDF文件的大小。

from PyPDF2 import PdfFileReader, PdfFileWriter
import os

def compress_pdf(input_folder, output_folder):
    for filename in os.listdir(input_folder):
        if filename.endswith('.pdf'):
            pdf_reader = PdfFileReader(os.path.join(input_folder, filename))
            pdf_writer = PdfFileWriter()

            for page_num in range(pdf_reader.getNumPages()):
                pdf_writer.addPage(pdf_reader.getPage(page_num))

            with open(os.path.join(output_folder, filename), 'wb') as out:
                pdf_writer.write(out)

# 使用示例
compress_pdf('/path/to/pdf/folder', '/path/to/output/folder')

这些脚本覆盖了从文件管理、网络操作到图像处理等多种场景,可根据具体需求调整使用,希望你能用在工作场景。

到此这篇关于分享10个拿来即用的Python自动化脚本的文章就介绍到这了,更多相关Python自动化脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python基于opencv实现的人脸识别(适合初学者)

    Python基于opencv实现的人脸识别(适合初学者)

    OpenCV是一个基于BSD许可开源发行的跨平台计算机视觉库,下面这篇文章主要给大家介绍了关于Python基于opencv实现的人脸识别,文中通过实例代码介绍的非常详细,本文的教程非常适合初学者,需要的朋友可以参考下
    2022-03-03
  • Python爬取肯德基官网ajax的post请求实现过程

    Python爬取肯德基官网ajax的post请求实现过程

    这篇文章主要介绍了Python爬取肯德基官网ajax的post请求实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家学有所得,多多进步
    2021-10-10
  • python 字符串详解

    python 字符串详解

    这篇文章主要介绍了Python的字符串,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下,希望能够给你带来帮助
    2021-10-10
  • pytorch使用 to 进行类型转换方式

    pytorch使用 to 进行类型转换方式

    今天小编就为大家分享一篇pytorch使用 to 进行类型转换方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 简单探讨一下python线程锁

    简单探讨一下python线程锁

    本文主要介绍了简单探讨一下python线程锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Python使用5行代码批量做小姐姐的素描图

    Python使用5行代码批量做小姐姐的素描图

    本文主要介绍了Python使用5行代码批量做小姐姐的素描图,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python缓存方案优化程序性能提高数据访问速度

    Python缓存方案优化程序性能提高数据访问速度

    Python缓存方案是一种优化程序性能,提高数据访问速度的方案。通过缓存数据,可以减少重复的计算和IO操作,从而提高程序的运行效率。Python中常用的缓存方案包括内存缓存、磁盘缓存和分布式缓存等,根据实际需求选择不同的方案可以帮助我们更好地优化程序性能
    2023-05-05
  • python tkinter实现界面切换的示例代码

    python tkinter实现界面切换的示例代码

    今天小编就为大家分享一篇python tkinter实现界面切换的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python做翻译软件详解,小白也看得明白

    python做翻译软件详解,小白也看得明白

    这篇文章主要介绍了怎么样用python做的翻译软件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • python中函数传参的多种方式

    python中函数传参的多种方式

    本文主要介绍了Python中函数传参的几种方式,包括位置参数、关键字参数、缺省参数和不定长参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11

最新评论