You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python访问Windows目录链接指向的文件?

Windows目录链接在Python中无法访问的解决方案

先搞清楚你创建的是哪种链接

Windows里手动做的“目录链接”分两种,本质完全不一样:

  • 右键创建的快捷方式(.lnk文件):这不是真正的系统级链接,就是个记录目标路径的小文件,os模块会把它当普通文件处理,所以os.listdir()会报错“不是目录”,os.path.islink()也返回False。
  • 用mklink命令创建的符号链接:比如在命令行输入mklink /D Tests\Images Database\Images,这才是系统认可的目录链接,os模块能正常识别。

如果是快捷方式(.lnk)的解决办法

要读取快捷方式的目标路径,得用Windows的COM接口解析,借助pywin32库实现:

import win32com.client
import os

def get_shortcut_target(shortcut_path):
    shell = win32com.client.Dispatch("WScript.Shell")
    shortcut = shell.CreateShortCut(shortcut_path)
    return shortcut.Targetpath

# 获取当前脚本所在目录下的Images快捷方式路径
shortcut_path = os.path.join(os.getcwd(), "Images")
# 解析出真实目标目录
target_dir = get_shortcut_target(shortcut_path)

# 现在可以正常访问目标目录内的文件
if os.path.isdir(target_dir):
    print(os.listdir(target_dir))

先安装依赖:pip install pywin32


如果是符号链接但仍无法识别的解决办法

  1. 用管理员权限运行脚本:Windows下读取符号链接可能需要管理员权限,右键终端选择「以管理员身份运行」后再执行脚本。
  2. 改用pathlib模块:Python 3.4+的pathlib对Windows符号链接支持更友好:
from pathlib import Path
import os

link_path = Path("./Images")
# 解析出真实路径
real_directory = link_path.resolve()
print(os.listdir(real_directory))
  1. 检查链接创建是否正确:打开命令行输入dir Tests\Images,如果输出开头是<SYMLINKD>,说明链接创建正常;若不是,重新用mklink /D命令创建。

内容的提问来源于stack exchange,提问作者Guillermo López

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:12:22