Python:检查目录是否是别名

2024-04-12

python 是否有一个简单的函数来检查目录是否是实际目录或者它是否只是另一个目录的别名?我试图列出目录中的所有文件/文件夹,但由于这些别名文件夹,我丢失了如下所示的内容:

/系统/库/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bundle/Home/bundle/Home/bundle/Home/bundle/Home/bundle/Home/bundle/Home/bundle/Home/bundle/Home /捆绑/首页/捆绑/首页/捆绑

我知道我可以编写一个函数来比较路径并在看起来像是在兜圈子时退出,但是是否有一个简单的函数可以完全实现我不知道的功能? 例如。 os.isAlias( …pathname… )

Thanks!


这是一个版本os.path.realpath适用于 Mac 别名以及符号链接在Python 2下:

from Carbon import File
def osx_realpath (path):
    return File.FSResolveAliasFile(path, True)[0].as_pathname()

如果在递归到每个目录之前调用 osx_realpath,则应该避免重复。或者你可以定义类似的东西

def is_osx_realpath (path):
    return path == osx_realpath(path)

然而,在这里你必须担心假阴性。如果您过滤 is_osx_realpath 并且您开始的路径是别名,您的程序将停止而不查看任何内容。

到目前为止,我不知道在 Python 3 下有什么方法可以做到这一点。我有一个问题here https://stackoverflow.com/questions/21244781/what-replaces-the-now-deprecated-carbon-file-fsresolvealiasfile-in-python-on-osx我希望得到答案。现在我不能做得比使用更好子流程调用 http://docs.python.org/3/library/subprocess.html to 调用在命令行上进行检查的东西 https://stackoverflow.com/questions/1175094/os-x-terminal-command-to-resolve-path-of-an-alias/17570232#17570232.

编辑:我应该补充一点,Carbon.File 不仅在 Python 3 中不可用,而且已被弃用,因此最好在 Python 2 中避免使用——然而,这是我目前所知道的 Python 2 最实用的解决方案。

编辑2:这是一种检查文件是否是我认为Python 3友好的别名的方法。但是,我没有解析别名的代码。我相信你需要安装 PyObjC。

from AppKit import NSWorkspace
def is_alias (path):
    uti, err = NSWorkspace.sharedWorkspace().typeOfFile_error_(
        os.path.realpath(path), None)
    if err:
        raise Exception(unicode(err))
    else:
        return "com.apple.alias-file" == uti

(source http://python.6.x6.nabble.com/Creator-type-and-other-means-of-file-detection-td2157634.html)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:检查目录是否是别名 的相关文章

随机推荐

  • 如果 call_user_func 返回 false 该怎么办?

    我正在调用的函数call user func应该返回FALSE 那么如果可调用无效 我如何检测错误呢 旁注 为什么他们没有抛出异常而不是返回错误代码 或者有没有办法 捕获 错误 我有一个错误句柄 我应该让它为我抛出异常吗 如果你想检查要调用
  • 如何在 C# 中验证 localhost 的 url

    我在 MVC 中使用 UrlAttribute 但它不接受本地主机网址 例如http localhost GCWeb http localhost GCWeb Url ErrorMessage please enter valid ftp
  • 如何在没有互联网的情况下通过 wifi 提供网站服务?

    我想通过开放的 wifi 连接提供网站服务 但我不希望此 wifi 连接能够访问互联网 这是否可能以及我将如何去做 我已经在本地设置了网站 并通过本地主机或 IP 地址在浏览器中进行了访问 但我不确定如何设置网络服务器并通过 wifi 为网
  • 使用 WPF 对象在另一个对象上“打孔”?

    我有一个椭圆 它只是一个圆 我的问题是我想从大圆的中间切出一个圆形的孔 但似乎没有任何效果 我尝试过不透明蒙版 但没有任何效果 更复杂的是 大圆圈具有 DropShadowEffect 但因为这个圆圈是稍微透明的 所以你可以看到它后面有一个
  • Eclipse 文件搜索模式恰好出现两次

    我想对像所示的人那样的文件进行文件搜索here http jgeeks blogspot com 2013 10 searching multiple words in multiple html 我想找到包含以下内容的文件字符串1和字符串
  • 无法访问类的内部接口

    我有一个用于 recyclerview 的适配器类 public abstract class RecyclerViewArrayAdapter
  • 如何配置 BizTalk WCF-SQL 适配器以从 SQL Server 2012“始终在线”副本数据库获取数据?

    我们有一个客户端将使用 SQL Server 2012 的 AlwaysOn 可用性功能 他们希望将 BizTalk WCF SQL 端口连接到只读副本 The 文档 http technet microsoft com en us lib
  • .net 4.0 中引用类型的 volatile

    我很困惑volatile供参考类型 据我了解 对于原始类型 volatile可以立即反映来自另一个线程的值变化 对于引用类型 可以立即反映地址变化 但是 对象的内容呢 它们仍然被缓存吗 假设List Add 是一个原子操作 例如 我有 cl
  • React Native:执行 UI 块时抛出异常

    我正在构建一个 iOS React Native 应用程序 目前正在使用 React Native swipe card 包为我的应用程序构建 tinder 例如刷卡 该应用程序工作正常 但是当我向左或向右滑动卡片 并在它离开屏幕一半时放开
  • 如何在rails控制器中获取上传文件的文件名

    在我的控制器中 如果我根据建议给出以下内容 filename params upload result filename original filename 我正进入 状态 undefined method original filenam
  • Python 是否有相当于 Java 的 AWT Robot 类? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道类似的Python类Java机器人 http java sun com javase 6 docs api java awt Ro
  • WPF DataGrid - 禁用时保留选择

    我已经为此苦苦挣扎了一段时间了 我的应用程序中有一个 主 详细信息 布局 并且像许多其他人一样面临着 DataGrid 在禁用它时丢失其选择的问题 本质上 从列表中选择一个元素来填充一系列字段后 用户按下 编辑 这会禁用 DataGrid
  • ical导出的格式化时间

    我在 jquery 中创建了一个导出到 ical 的日历 但是 我对日期时间有一些问题 ical 导出脚本需要以下格式的日期 时间 19970714T170000Z 有谁知道这是什么以及我应该如何准备我的字符串 Thanks 阅读 RFC
  • 'effect' 在 jsfiddle 中工作正常,但在实时代码中不起作用([object Object] 没有方法 'effect' )

    相关 但不是修复 jQuery 问题 没有方法 https stackoverflow com questions 2988485 jquery issue an object has no method 我收到错误Object objec
  • for 循环范围不起作用 ksh

    我试过这个 bin ksh for i in 1 10 do echo Welcome i times done 在 AIX 机器的 Ksh 中 我得到的输出为 欢迎 1 10 次 这是怎么回事 不是应该打印从1到10吗 编辑 根据 per
  • Windows 上的正则表达式 PCRE

    如何在 Windows 上安装 regex pcre cabal install regex pcre Resolving dependencies Configuring regex pcre 0 94 4 cabal Missing d
  • Dapper SqlMapperExtensions / Dapper.Contrib?

    好像有一个DapperExtensions项目 但是Dapper项目中还有一个SqlMapperExtensions类 有重叠吗 其中一个比另一个更受青睐吗 我找不到有关 Dapper Contrib 的任何文档 Dapper Contri
  • 用于运行异步请求的 Python Celery 与线程库 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在运行一个解析大量数据的 python 方法 由于它是时间密集型的 我想在单独的线程上异步运行它 以便用户仍然可以访问网站 UI 如果用户退
  • 如何关闭 AWS S3 客户端连接

    关闭 aws s3 客户端连接的协议是什么 Override public boolean connect if connected return false else s3Client new AmazonS3Client credent
  • Python:检查目录是否是别名

    python 是否有一个简单的函数来检查目录是否是实际目录或者它是否只是另一个目录的别名 我试图列出目录中的所有文件 文件夹 但由于这些别名文件夹 我丢失了如下所示的内容 系统 库 Java JavaVirtualMachines 1 6