python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python自动化管理文件

Python自动化管理文件的6个实用脚本总结

作者:东眠的鱼

在日常工作中,手动管理文件既耗时又容易出错,而Python提供了强大的工具来自动完成这些任务,本文为大家整理了6个Python自动化管理文件的实用脚本,希望对大家有所帮助

1 Python自动化文件管理基础

为什么需要Python进行文件管理?

在日常工作中,手动管理文件既耗时又容易出错。而Python提供了强大的工具来自动完成这些任务!比如整理照片、备份文件或者清理临时文件,都可以用Python轻松搞定。

示例:假设你需要每天整理一个包含上千个文件的文件夹,手动操作可能需要几个小时,但用Python只需几秒钟!

# 这是一个简单的文件管理脚本框架
import os

Python文件管理的核心模块

Python中有几个专门用于文件管理的模块,比如os、shutil和pathlib。这些模块就像你的“工具箱”,能帮你完成各种文件操作。

代码示例:

# 导入核心模块
import os
import shutil
from pathlib import Path

文件管理的基本概念

在学习具体脚本之前,先了解一些基本概念:

小练习:运行以下代码查看当前工作目录:

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模块复制和移动文件

使用 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 文件夹中。是不是很方便?

使用 shutil.move() 移动文件

除了复制,我们还可以用 shutil.move() 来移动文件。例如,将文件从一个文件夹移到另一个文件夹:

import shutil

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

# 移动文件
shutil.move(source, destination)

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

创建文件夹

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 的新文件夹。

删除文件夹

删除文件夹也同样简单!使用 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 通过正则表达式批量重命名文件

正则表达式与文件名匹配

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

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("重命名完成!")

运行结果和原理

这段代码会遍历指定文件夹中的所有文件,找到文件名中包含“YYYY-MM-DD”格式的文件,并将其重命名为以该日期命名的新文件。是不是很方便?试试看吧!

6 使用Python压缩和解压文件

使用 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 的文件。

使用 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 文件夹中。

使用 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。

使用 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 文件。

解压 .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 文件夹中。

高级技巧:批量压缩多个文件

如果你需要一次性压缩多个文件,可以用列表推导式来简化操作!例如:

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")

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

自动识别文件类型

在整理下载文件夹时,第一步是识别文件类型。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 文件。

创建分类文件夹

接下来,我们需要为不同类型的文件创建对应的文件夹。用 pathlib 可以轻松实现:

for folder in ["Images", "Documents", "Videos"]:
    (download_folder / folder).mkdir(exist_ok=True)

运行后,你会在下载文件夹中看到 Images、Documents 和 Videos 等新文件夹。

移动文件到对应文件夹

最后一步是把文件移动到正确的分类文件夹。使用 shutil.move() 可以轻松完成

import shutil

for file in image_files:
    shutil.move(file, download_folder / "Images" / file.name)

以上就是Python自动化管理文件的6个实用脚本总结的详细内容,更多关于Python自动化管理文件的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文