Python自动化文件管理的6个实用脚本模板


包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

1 Python自动化文件管理基础

1.1 为什么需要Python进行文件管理?
在日常工作中,手动管理文件既耗时又容易出错。而Python提供了强大的工具来自动完成这些任务!比如整理照片、备份文件或者清理临时文件,都可以用Python轻松搞定。
  • 示例:假设你需要每天整理一个包含上千个文件的文件夹,手动操作可能需要几个小时,但用Python只需几秒钟!
# 这是一个简单的文件管理脚本框架
import os

在这里插入图片描述

1.2 Python文件管理的核心模块
Python中有几个专门用于文件管理的模块,比如os、shutil和pathlib。这些模块就像你的“工具箱”,能帮你完成各种文件操作。
  • os模块:处理文件路径、遍历目录等。
  • shutil模块:复制、移动和删除文件。
  • pathlib模块:更现代、更直观的路径操作方式。
代码示例:
# 导入核心模块
import os
import shutil
from pathlib import Path
1.3 文件管理的基本概念
在学习具体脚本之前,先了解一些基本概念:
  • 路径:文件或文件夹的位置,例如C:\Users\Name\Documents。
  • 绝对路径 vs 相对路径:绝对路径从根目录开始,相对路径基于当前工作目录。
  • 文件名与扩展名:example.txt中,example是文件名,.txt是扩展名。
小练习:运行以下代码查看当前工作目录:
print(os.getcwd())  # 输出当前工作目录
输出结果可能是:
C:\Users\Name
  • 通过这些基础知识,你可以更好地理解接下来的具体脚本模板!

2 使用os模块列出目录中的所有文件

想快速列出某个文件夹里的所有文件吗?Python的os模块可以帮到你!下面教你怎么用os.listdir()列出指定目录的所有文件和子文件夹。
  • 来看个例子:
import os

# 指定要查看的目录
folder_path = "C:/example_folder"

# 列出目录下的所有内容
all_items = os.listdir(folder_path)
print(all_items)  # 输出所有文件和文件夹的名字
  • 这段代码会把C:/example_folder里的所有文件和文件夹名字打印出来。是不是特别方便?记得替换folder_path为你自己的路径哦!

3 使用shutil模块复制和移动文件

1. 使用 shutil.copy() 复制文件
shutil 模块是 Python 提供的一个强大工具,可以轻松完成文件的复制操作。比如,你想把一个文件从一个位置复制到另一个位置,用 shutil.copy() 就能搞定!来看个例子:
import shutil

# 源文件路径和目标文件路径
source = "example.txt"
destination = "backup/example.txt"

# 创建目标目录(如果不存在)
os.makedirs(os.path.dirname(destination), exist_ok=True)

# 复制文件
shutil.copy(source, destination)
  • 代码中,shutil.copy() 会将 example.txt 文件复制到 backup 文件夹中。是不是很方便?
2. 使用 shutil.move() 移动文件
除了复制,我们还可以用 shutil.move() 来移动文件。例如,将文件从一个文件夹移到另一个文件夹:
import shutil

# 源文件路径和目标文件路径
source = "example.txt"
destination = "archive/example.txt"

# 移动文件
shutil.move(source, destination)
  • 运行后,example.txt 文件会被直接移动到 archive 文件夹中。
  • 通过这两个函数,你可以轻松实现文件的复制和移动操作啦!

4 使用pathlib模块创建和删除文件夹

4.1 创建文件夹
Python 的 pathlib 模块让文件夹操作变得超级简单!比如,如果你想创建一个新文件夹,只需几行代码就能搞定。来看个例子:
from pathlib import Path

# 定义文件夹路径
folder_path = Path("my_new_folder")

# 如果文件夹不存在,则创建
if not folder_path.exists():
    folder_path.mkdir()
    print("文件夹已成功创建!")
else:
    print("文件夹已经存在!")
  • 运行后,你会在当前目录下看到一个名为 my_new_folder 的新文件夹。
4.2 删除文件夹
删除文件夹也同样简单!使用 rmdir() 方法即可。但要注意,这个方法只能删除空文件夹哦!
from pathlib import Path

# 定义文件夹路径
folder_path = Path("my_new_folder")

# 如果文件夹存在且为空,则删除
if folder_path.exists() and not any(folder_path.iterdir()):
    folder_path.rmdir()
    print("文件夹已成功删除!")
else:
    print("文件夹不存在或非空,无法删除!")
  • 这段代码会检查文件夹是否存在以及是否为空,确保操作安全可靠

5 通过正则表达式批量重命名文件

5.1 正则表达式与文件名匹配
正则表达式是处理文本的强大工具,可以用来匹配复杂的文件名模式。比如,你想批量重命名所有包含日期的文件,可以用正则表达式轻松实现!来看个例子:
import os
import re

folder_path = "your_folder_path"  # 替换为你的文件夹路径

# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
    # 匹配文件名中包含的日期格式(如2023-01-01)
    match = re.search(r'\d{4}-\d{2}-\d{2}', filename)
    if match:
        old_name = os.path.join(folder_path, filename)
        new_name = os.path.join(folder_path, match.group() + ".txt")  # 修改为你想要的新名字
        os.rename(old_name, new_name)  # 执行重命名操作
print("重命名完成!")
5.2 运行结果和原理
这段代码会遍历指定文件夹中的所有文件,找到文件名中包含“YYYY-MM-DD”格式的文件,并将其重命名为以该日期命名的新文件。是不是很方便?试试看吧!

6 使用Python压缩和解压文件

1. 使用 zipfile 模块压缩文件
Python 的 zipfile 模块可以轻松压缩文件。比如,你想把几个文件打包成一个ZIP文件,只需要几行代码就能搞定!来看个例子:
import zipfile

# 创建一个新的ZIP文件
with zipfile.ZipFile('example.zip', 'w') as zipf:
    # 添加文件到ZIP中
    zipf.write('file1.txt')
    zipf.write('file2.txt')

print("文件已成功压缩为 example.zip")
  • 这段代码会将 file1.txt 和 file2.txt 压缩成一个名为 example.zip 的文件。
2. 使用 zipfile 模块解压文件
如果需要从 ZIP 文件中提取内容,zipfile 模块同样非常方便。下面是一个解压示例:
import zipfile

# 解压ZIP文件
with zipfile.ZipFile('example.zip', 'r') as zipf:
    zipf.extractall('extracted_files')

print("文件已成功解压到 extracted_files 文件夹")
  • 运行后,example.zip 中的所有文件会被解压到 extracted_files 文件夹中。
3. 使用 shutil 模块快速压缩文件夹
如果你想直接压缩整个文件夹,shutil 模块的 make_archive 函数是个好选择!看代码:
import shutil

# 压缩整个文件夹
shutil.make_archive('my_folder_archive', 'zip', 'my_folder')

print("文件夹已成功压缩为 my_folder_archive.zip")
  • 这段代码会将 my_folder 文件夹压缩成 my_folder_archive.zip。
4. 使用 tarfile 模块处理 .tar 文件
除了 ZIP 文件,Python 还支持处理 .tar 格式的压缩文件。以下是如何创建一个 .tar.gz 文件:
import tarfile

# 创建一个.tar.gz文件
with tarfile.open('example.tar.gz', 'w:gz') as tar:
    tar.add('file1.txt')
    tar.add('file2.txt')

print("文件已成功压缩为 example.tar.gz")
  • 这段代码会将 file1.txt 和 file2.txt 打包成一个 .tar.gz 文件。
5. 解压 .tar.gz 文件
解压 .tar.gz 文件也很简单,使用 tarfile 模块即可:
import tarfile

# 解压.tar.gz文件
with tarfile.open('example.tar.gz', 'r:gz') as tar:
    tar.extractall('extracted_tar_files')

print("文件已成功解压到 extracted_tar_files 文件夹")
  • 运行后,example.tar.gz 中的内容会被解压到 extracted_tar_files 文件夹中。
6. 高级技巧:批量压缩多个文件
如果你需要一次性压缩多个文件,可以用列表推导式来简化操作!例如:
import zipfile

files_to_compress = ['file1.txt', 'file2.txt', 'file3.txt']

# 批量压缩多个文件
with zipfile.ZipFile('batch_example.zip', 'w') as zipf:
    for file in files_to_compress:
        zipf.write(file)

print("所有文件已成功压缩为 batch_example.zip")
  • 这段代码会将 files_to_compress 列表中的所有文件压缩到 batch_example.zip 中。
  • 通过这些实用脚本模板,你可以轻松完成各种文件的压缩和解压任务!是不是超级简单?快试试吧!

7 实战案例:自动整理下载文件夹并分类存储

1. 自动识别文件类型
在整理下载文件夹时,第一步是识别文件类型。Python 的 os 和 pathlib 模块可以轻松获取文件扩展名。比如,下面的代码能帮你找到所有图片文件:
from pathlib import Path

download_folder = Path("C:/Users/YourName/Downloads")
image_files = list(download_folder.rglob("*.jpg")) + list(download_folder.rglob("*.png"))
print(image_files)
  • 这段代码会列出下载文件夹中所有的 .jpg 和 .png 文件。
2. 创建分类文件夹
接下来,我们需要为不同类型的文件创建对应的文件夹。用 pathlib 可以轻松实现:
for folder in ["Images", "Documents", "Videos"]:
    (download_folder / folder).mkdir(exist_ok=True)
  • 运行后,你会在下载文件夹中看到 Images、Documents 和 Videos 等新文件夹。
3. 移动文件到对应文件夹
最后一步是把文件移动到正确的分类文件夹。使用 shutil.move() 可以轻松完成
import shutil

for file in image_files:
    shutil.move(file, download_folder / "Images" / file.name)
  • 这段代码会把所有图片文件移动到 Images 文件夹中。
  • 通过这三步,你的下载文件夹就能变得井井有条!试试看吧,是不是特别方便?
    图片

总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费在这里插入图片描述