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

Python 3.6.5在Windows 10下读取符号链接文件的实现方法

解决Windows 10 Python 3.6.5无法读取符号链接的问题

我之前在Windows上用Python 3.6处理符号链接时也踩过一模一样的坑!MacOS默认会自动跟随symlink,但Python 3.6.x在Windows平台确实存在这个兼容性问题,给你几个实用的解决办法:

方法1:手动解析符号链接的真实路径

用os.path.realpath()先获取链接指向的真实文件路径,再打开文件,这是跨平台通用的方案:

import os

# 符号链接的路径
link_file = "FileA.txt"
# 解析出真实目标路径
real_file_path = os.path.realpath(link_file)

with open(real_file_path) as f:
    print(f.read())

os.path.realpath()会自动处理Windows和Mac上的符号链接,帮你定位到真正的目标文件,完美规避版本差异问题。

方法2:升级Python版本到3.7+

Python 3.7及以后的版本已经修复了Windows平台下open()函数无法跟随符号链接的bug,升级后你原来的代码就能直接正常运行,不用做任何修改。如果项目允许升级版本,这是最省心的解决方案。

方法3:确保创建的是真正的符号链接(而非快捷方式)

有时候报错是因为你创建的不是真正的Windows符号链接,而是普通的.lnk快捷方式——这种情况下Python会把它当成无效文件处理。

创建真正的符号链接需要管理员权限:

  1. 右键命令提示符,选择「以管理员身份运行」
  2. 进入DirectoryB目录,执行命令:
mklink FileA.txt "../FileA.txt"

(如果是创建目录符号链接,记得加/D参数:mklink /D DirLink ../TargetDir)

补充说明

Python 3.6及更早版本在Windows上,open()函数默认不支持解析符号链接,加上Windows的符号链接机制和Unix系(比如MacOS)不同,没有管理员权限创建的往往是快捷方式而非真正的symlink,这两个因素叠加就会导致你遇到的OSError: [Errno 22] Invalid argument错误。

内容的提问来源于stack exchange,提问作者Ogen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:27:06