分享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自动化脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • TensorFlow tf.nn.conv2d实现卷积的方式

    TensorFlow tf.nn.conv2d实现卷积的方式

    今天小编就为大家分享一篇TensorFlow tf.nn.conv2d实现卷积的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 简单了解python模块概念

    简单了解python模块概念

    这篇文章主要介绍了简单了解python模块概念,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python密码学周期置换密码学习

    python密码学周期置换密码学习

    这篇文章主要为大家介绍了python密码学周期置换密码的学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python语言实现将图片转化为html页面

    Python语言实现将图片转化为html页面

    这篇文章主要介绍了Python实现将图片转化为html页面,具有一定参考价值,需要的朋友可以了解下。
    2017-12-12
  • python读取文件由于编码问题失败汇总以及解决办法

    python读取文件由于编码问题失败汇总以及解决办法

    这篇文章主要给大家介绍了关于python读取文件由于编码问题失败汇总以及解决办法的相关资料,文件编码错误指的是在Python读取文件的过程中出现的编码不匹配的问题,需要的朋友可以参考下
    2023-10-10
  • opencv+playwright滑动验证码的实现

    opencv+playwright滑动验证码的实现

    滑动验证码是常见的验证码之一,本文主要介绍了opencv+playwright滑动验证码的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • python求质数列表的例子

    python求质数列表的例子

    今天小编就为大家分享一篇python求质数列表的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python中Array特性与应用实例深入探究

    Python中Array特性与应用实例深入探究

    这篇文章主要为大家介绍了Python中Array特性与应用实例深入探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python密码学列置换密码学习

    python密码学列置换密码学习

    这篇文章主要为大家介绍了python密码学列置换密码学习的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 在Python文件中指定Python解释器的方法

    在Python文件中指定Python解释器的方法

    今天小编就为大家分享一篇在Python文件中指定Python解释器的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02

最新评论