Python批量创建软链接和快捷方式教程
用Python批量给文件创建符号链接(软链接)和Windows快捷方式(.lnk),不复制原文件就能多目录访问,整理文件结构利器。
场景痛点
同一个项目文件,销售要看一份、财务要看一份、领导桌面还要放一份,复制来复制去版本越改越乱,不知道哪份是最新的。用软链接(或快捷方式)代替复制,原文件只留一份,其他地方放个"指针",改一处全部生效,磁盘空间还省了。手动一个一个建快捷方式太累,Python批量搞定。
用到的库
pip install winauto pywin32
创建Windows .lnk 快捷方式用 pywin32(仅Windows);跨平台软链接用标准库 os.symlink。
完整代码
import os
from pathlib import Path
def create_symlink(src_paths: list, link_dir: str):
"""
跨平台创建符号链接(软链接)。
src_paths: 原文件路径列表
link_dir: 软链接存放目录
"""
link_root = Path(link_dir)
link_root.mkdir(parents=True, exist_ok=True)
made = []
for src in src_paths:
src_p = Path(src).resolve()
if not src_p.exists():
print(f"跳过(不存在):{src}")
continue
link_path = link_root / src_p.name
if link_path.exists():
print(f"跳过(已存在):{link_path}")
continue
try:
os.symlink(src_p, link_path)
made.append(str(link_path))
print(f"软链接已创建:{link_path}")
except OSError as e:
# Windows下普通用户创建符号链接需要管理员权限
print(f"软链接失败 {link_path}:{e}")
return made
def create_windows_shortcut(src_paths: list, link_dir: str):
"""
Windows 下创建 .lnk 快捷方式(不需要管理员权限)。
需要安装 pywin32:pip install pywin32
"""
try:
import win32com.client
except ImportError:
print("未安装 pywin32,跳过快捷方式创建。")
return []
link_root = Path(link_dir)
link_root.mkdir(parents=True, exist_ok=True)
made = []
shell = win32com.client.Dispatch("WScript.Shell")
for src in src_paths:
src_p = Path(src).resolve()
if not src_p.exists():
continue
lnk_path = link_root / (src_p.stem + ".lnk")
shortcut = shell.CreateShortCut(str(lnk_path))
shortcut.Targetpath = str(src_p)
shortcut.WorkingDirectory = str(src_p.parent)
shortcut.Description = f"快捷方式 -> {src_p.name}"
shortcut.save()
made.append(str(lnk_path))
print(f"快捷方式已创建:{lnk_path}")
return made
if __name__ == "__main__":
# 要建链接的原文件列表
FILES = [
r"D:\工作资料\项目A\总表.xlsx",
r"D:\工作资料\项目A\方案.docx",
r"D:\工作资料\项目B\报价.xlsx",
]
# 方式一:跨平台软链接
create_symlink(FILES, r"D:\桌面\项目快捷访问")
# 方式二:Windows .lnk 快捷方式(推荐,不用管理员权限)
create_windows_shortcut(FILES, r"D:\桌面\项目快捷访问")
代码讲解
os.symlink(原文件, 链接路径) 是Python标准的软链接创建函数,Linux和macOS开箱即用,Windows下需要开启开发者模式或以管理员身份运行。Windows普通用户最稳的方案是创建 .lnk 快捷方式:通过 win32com.client 调用系统自带的 WScript.Shell,设置 Targetpath 指向原文件,保存就是一个标准快捷方式,双击就能打开,不需要管理员权限。两种方式都先判断原文件是否存在、目标链接是否已存在,避免报错和覆盖。
运行结果
在 D:\桌面\项目快捷访问 目录下,为每个原文件生成一个软链接(或 .lnk 快捷方式)。双击链接就像打开原文件一样,原文件修改后,所有链接指向的内容同步更新。
注意事项
- Windows下
os.symlink需要管理员权限或开启"开发者模式",否则报权限错误,用.lnk方案最省事。 - 软链接移动原文件后链接会失效(变成死链),快捷方式同理。
- 跨盘、跨文件系统软链接可能有兼容问题,
.lnk不存在这个问题。 - 软链接本身在
os.walk遍历时不会跟着走进去(Python默认行为),不会造成递归死循环。

更新时间:2026-09-14 21:28:46
上一篇:Python 批量删除指定类型文件:清理缓存与垃圾文件