包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!
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):
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
with zipfile.ZipFile('example.zip', 'w') as zipf:
zipf.write('file1.txt')
zipf.write('file2.txt')
print("文件已成功压缩为 example.zip")
- 这段代码会将 file1.txt 和 file2.txt 压缩成一个名为 example.zip 的文件。
2. 使用 zipfile 模块解压文件
如果需要从 ZIP 文件中提取内容,zipfile 模块同样非常方便。下面是一个解压示例:
import zipfile
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
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
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%免费】