操作系统路径.islink在使用python的windows上
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了操作系统路径.islink在使用python的windows上,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2257字,纯文字阅读大概需要4分钟。
内容图文
![操作系统路径.islink在使用python的windows上](/upload/InfoBanner/zyjiaocheng/936/69e1cceb22c54c6db08c02814d8606c2.jpg)
在安装了Python2.7的Windows7上,如何检测路径是否是符号链接? 这不起作用os.path.islink()
,如果false或不支持,则返回false,并且我提供的路径肯定是一个符号链接,所以我假设windows不支持它?我能做什么?在
已被浏览了6978次 更新日期: 2020-09-14 05:38:47 3 个回答
对于目录:
import os, ctypes
def IsSymlink(path):
FILE_ATTRIBUTE_REPARSE_POINT = 0x0400
return os.path.isdir(path) and (ctypes.windll.kernel32.GetFileAttributesW(unicode(path)) & FILE_ATTRIBUTE_REPARSE_POINT):
赞 踩 评论 - 2020年7月28日 11:01
使用Python的旧版本也是个问题。如果你想坚持2.x,你将无法利用2010年初之后新增的新功能。在
其中一个特性是处理NTFS符号链接。这个功能是在2010年底3.2中添加的。(有关详细信息,请参见3.2、3.1和2.7源文件。)
直到2009年之前,Python才开始处理链接。(IIRC,支持包含在6.0内核中,但是userland支持需要Vista/2008上的一个服务包;只有7/2008R2和更高版本才内置了它。另外,您需要一个足够新的MSVCRT来访问userland支持,而且Python有一个明确的策略,即不在小版本中升级到新的visualstudio版本。)
代码没有被移植回2.x的原因是that there will never be a 2.8,而像2.7.3(或2.7.4)这样的bug修复版本没有获得新的特性,只有bug修复。在
这被报告为issue 13143,预期的修复是更改2.7文档,以澄清在Windows上,islink
总是返回{}。在
因此,如果你想在Windows下读取NTFS符号链接,要么升级到python3.2+,要么你必须自己使用^{}、^{}等来完成。在
或者,正如Martijn Pieters建议的那样,不要自己动手,而是使用一个像^{}这样的第三方库来完成和/或借用their code。在
或者,如果你真的愿意,可以借用3.2源代码并围绕它构建一个C扩展模块。如果你从ntpath
到os
再到{}(实际上是posixmodule.c
),我相信它的核心在^{} and ^{}。在
这是我最后用来确定文件或目录是否是Windows 7中的链接:
def isLink(path):
if os.path.exists(path):
if os.path.isdir(path):
FILE_ATTRIBUTE_REPARSE_POINT = 0x0400
attributes = ctypes.windll.kernel32.GetFileAttributesW(unicode(path))
return (attributes & FILE_ATTRIBUTE_REPARSE_POINT) > 0
else:
command = ['dir', path]
try:
with open(os.devnull, 'w') as NULL_FILE:
o0 = check_output(command, stderr=NULL_FILE, shell=True)
except CalledProcessError as e:
print e.output
return False
o1 = [s.strip() for s in o0.split('\n')]
if len(o1) < 6:
return False
else:
return 'SYMLINK' in o1[5]
else:
return False
编辑:根据Zitrax和Annan的建议修改代码
赞 踩 评论 - 2020年7月28日 11:01内容总结
以上是互联网集市为您收集整理的操作系统路径.islink在使用python的windows上全部内容,希望文章能够帮你解决操作系统路径.islink在使用python的windows上所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。