【问题标题】:Traversing multiple symbolic links recursively in Python在 Python 中递归遍历多个符号链接
【发布时间】:2021-08-27 03:06:41
【问题描述】:

我想写一个递归函数来遍历从源路径到目标路径的符号链接

示例: 1)readlink patha/pathb/pathc -> 如果符号链接存在则给出 2)readlink patha/pathb/pathc/ -> 如果符号链接存在则给出

我在 python 中使用 os.readlink 方法来获取 Python 中的符号链接,但是如何遍历多个符号链接

遍历原因: 如果将来有人想在两者之间添加 file3 符号链接,那么我想要一个递归函数来遍历每个符号链接并给出最终的 dest 路径
file1 -> file2 -> .... -> 用于获取目标路径

【问题讨论】:

  • 你的例子不足以诱导你想做什么。
  • 是的,我已经准确地添加了我想做的事情。
  • 我希望现在问题已经清楚了。谢谢
  • 呵呵。不,我现在更正了。
  • @Somu 能解决你的问题吗?

标签: python python-3.x recursion symlink-traversal readlink


【解决方案1】:

你可以简单地使用

import os

def find_link(path):
   try:
        link = os.readlink(path)
        return find_link(link)
   except OSError: # if the last is not symbolic file will throw OSError
        return path

print(find_link("a/b/c"))

【讨论】:

  • 是的,这个解决方案解决了我从任何路径递归遍历符号链接的问题。谢谢
  • @Somu 您可以将此标记为答案,这将有助于将来有相同问题的其他人。
  • @Epic Chen 是的,我将此标记为答案。谢谢
  • 很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2014-03-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
相关资源
最近更新 更多