恐怖狙击求生中文版
118.47MB · 2025-11-20
Python 的标准库中,os、shutil、glob 等模块可以轻松构建各种文件批处理脚本,是自动化办公与数据清洗的利器。
本章将从常见场景出发,通过示例脚本帮助你快速掌握文件批量处理能力。
提供文件路径、文件夹、新建/删除目录等操作。
常用方法:
os.listdir()os.rename()os.path.exists()os.makedirs()os.remove()执行高级文件操作:
shutil.copy()shutil.move()shutil.copytree()使用通配符批量匹配文件,例如:
glob.glob("*.txt")
glob.glob("images/*.jpg")
是处理大量文件时非常方便的模块。
例如:把文件名全部改为统一格式 img_001.jpg、img_002.jpg。
import os
folder = "images"
files = os.listdir(folder)
for i, filename in enumerate(files, start=1):
old_path = os.path.join(folder, filename)
ext = os.path.splitext(filename)[1]
new_name = f"img_{i:03d}{ext}"
new_path = os.path.join(folder, new_name)
os.rename(old_path, new_path)
print("重命名完成。")
技术要点
os.path.splitext() 可获得文件扩展名i:03d 生成 001、002 的数字序号import shutil
import glob
src_files = glob.glob("data/*.txt")
dst_folder = "backup"
os.makedirs(dst_folder, exist_ok=True)
for file in src_files:
shutil.copy(file, dst_folder)
print("复制完成。")
import shutil
import glob
for file in glob.glob("data/*.csv"):
shutil.move(file, "csv_files")
print("移动完成。")
例如,删除所有 .log 文件:
import os
import glob
for file in glob.glob("logs/*.log"):
os.remove(file)
print("删除完成。")
目录删除使用 shutil.rmtree("folder")。
比如,你有 100 个 .txt 日志文件,需要汇总到一个文件。
import glob
files = glob.glob("logs/*.txt")
with open("summary.txt", "w", encoding="utf-8") as outfile:
for file in files:
with open(file, "r", encoding="utf-8") as f:
outfile.write(f"=== 文件:{file} ===n")
outfile.write(f.read())
outfile.write("nn")
print("汇总完成。")
在大量 .txt 文件中,将所有 "测试" 替换为 "正式":
import glob
for file in glob.glob("docs/*.txt"):
with open(file, "r", encoding="utf-8") as f:
text = f.read()
text = text.replace("测试", "正式")
with open(file, "w", encoding="utf-8") as f:
f.write(text)
print("批量替换完成。")
import zipfile
import glob
files = glob.glob("data/*.csv")
with zipfile.ZipFile("data.zip", "w") as zipf:
for file in files:
zipf.write(file)
print("压缩完成。")
下面给出一个实战脚本,把下载目录按文件类型分类:
import os
import shutil
import glob
download_folder = "downloads"
file_types = {
"图片": ["*.jpg", "*.png"],
"视频": ["*.mp4"],
"压缩包": ["*.zip", "*.rar"],
"文档": ["*.pdf", "*.docx", "*.txt"]
}
for folder_name, patterns in file_types.items():
target_folder = os.path.join(download_folder, folder_name)
os.makedirs(target_folder, exist_ok=True)
for pattern in patterns:
for file in glob.glob(os.path.join(download_folder, pattern)):
shutil.move(file, target_folder)
print("下载目录已整理完毕!")
执行后,文件会自动分类到各自目录,办公效率提升非常明显。
示例:
try:
shutil.move(src, dst)
except Exception as e:
print("移动失败:", e)
本章你掌握了 Python 在文件自动化中的核心技能:
这些脚本结合日常办公场景,可以最大化提升工作效率,是每个 Python 工程师必须掌握的技能点。
118.47MB · 2025-11-20
150.8MB · 2025-11-20
267.7MB · 2025-11-20