- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在带有 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.2、3.1 和 2.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 扩展模块。如果你从 ntpath
到 os
再到 nt
(实际上是 posixmodule.c
),我相信它的胆量在win32_xstat_impl
and win32_xstat_impl_w
.
关于python - os.path.islink 在 Windows 上与 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258506/
在尝试编译我的项目后,我在 SDK 文件中收到以下错误。我重新下载并重建了整个工具,但我仍然明白。 Compiler message:
在带有 Python 2.7 的 Windows 7 上,如何检测路径是否为符号链接(symbolic link)?这不起作用 os.path.islink(),它表示如果为 false 或不受支持则
我正在使用 iOS Dropbox SDK,想检查我的应用程序是否已与 Dropbox 帐户相关联。所以我这样做: if (self.isLinked) { NSLog(@"linked");
我是一名优秀的程序员,十分优秀!