gpt4 book ai didi

python - os.path.islink 在 Windows 上与 python

转载 作者:太空狗 更新时间:2023-10-29 17:53:30 25 4
gpt4 key购买 nike

在带有 Python 2.7 的 Windows 7 上,如何检测路径是否为符号链接(symbolic link)?这不起作用 os.path.islink(),它表示如果为 false 或不受支持则返回 false 并且我提供的路径绝对是一个符号链接(symbolic link)所以我假设它在 Windows ?我能做什么?

最佳答案

根本问题是您使用的 Python 版本太旧。如果您想坚持使用 2.x,您将无法利用 2010 年初之后添加的新功能。

其中一个功能是处理 NTFS 符号链接(symbolic link)。该功能是在 2010 年底的 3.2 中添加的。(有关详细信息,请参阅 3.23.12.7 来源。)

Python 在此之前不处理 NTFS 符号链接(symbolic link)的原因是直到 2009 年底才出现这样的东西。(IIRC,支持包含在 6.0 内核中,但用户空间支持需要 Vista/2008 上的服务包;只有 7/2008R2 及更高版本内置它。另外,您需要一个足够新的 MSVCRT 才能访问该用户空间支持,并且 Python 有一个明确的政策,即不在次要版本中升级到新的 Visual Studio 版本。)

代码没有移植回 2.x 的原因是 that there will never be a 2.8 , 错误修复版本如 2.7.3(或 2.7.4)没有新功能,只有错误修复。

这已报告为 issue 13143 ,并且预期的修复是更改 2.7 文档以阐明 islink 在 Windows 上始终返回 False

所以,如果你想在 Windows 下读取 NTFS 符号链接(symbolic link),要么升级到 Python 3.2+,要么你必须使用 win32api , ctypes等自己做。

或者,正如 Martijn Pieters 建议的那样,不要自己动手,而是使用像 jaraco.windows 这样的第三方库。这样做和/或借用 their code .

或者,如果您确实需要,可以从 3.2 源代码中借用代码并围绕它构建一个 C 扩展模块。如果你从 ntpathos 再到 nt (实际上是 posixmodule.c),我相信它的胆量在win32_xstat_impl and win32_xstat_impl_w .

关于python - os.path.islink 在 Windows 上与 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com