当前位置: 首页 > 面试题库 >

如何找到文件所在的安装点?

丁经略
2023-03-14
问题内容

例如,我有一个带有以下路径的文件:

/media/my_mountpoint/path/to/file.txt

我有完整的道路,想得到:

/media/my_mountpoint

我怎样才能做到这一点?最好在Python中且不使用外部库/工具。(都不是必需的。)


问题答案:

您可以调用mount命令并解析其输出以找到路径中最长的公用前缀,或者使用stat系统调用获取文件所在的设备,然后沿树向上移动,直到到达其他设备。

在Python中,stat可以按以下方式使用(未经测试,可能必须扩展以处理符号链接和诸如联合安装的奇特事物):

def find_mount_point(path):
    path = os.path.abspath(path)
    orig_dev = os.stat(path).st_dev

    while path != '/':
        dir = os.path.dirname(path)
        if os.stat(dir).st_dev != orig_dev:
            # we crossed the device border
            break
        path = dir
    return path

编辑os.path.ismount直到现在我才知道。这大大简化了事情。

def find_mount_point(path):
    path = os.path.abspath(path)
    while not os.path.ismount(path):
        path = os.path.dirname(path)
    return path


 类似资料:
  • 问题内容: 是否有Linux命令可以轻松找出目录或文件位于哪个分区/挂载上? (这可能是一个RTM问题,对此我感到内,但不知何故,我还没有在Google上找到一个好的答案。) 问题答案: df -P file/goes/here | tail -1 | cut -d’ ‘ -f 1

  • 问题内容: 我已使用安装了elasticsearch 。我的插件似乎驻留在中。随着我看到一个包含正确路径变量。 有没有办法向Elastic或plugins目录询问? 编辑 我要查找的是 插件 可执行文件用来在执行该操作时安装插件的目录。我想在脚本中使用该路径来启动elasticsearch。 问题答案: 要找到您的elasticsearch 主目录 并 安装插件 , 请 按照以下步骤操作。 找到您

  • 问题内容: MacOS Sierra 是给我下面的错误:,,。我没有在文件夹树下看到此SDL / SDL.h文件。 给了我以下错误。 问题答案: 这有助于解决问题。必要时使用。

  • 我是 PyCharm(和 Python)的新手,但找不到一种方法在我的 PyCharm 项目中的所有文件中完整搜索单词。每次我做编辑—— 当我选择查找用法时,它告诉我将插入符号定位到一个特定的单词。

  • 我正在学习如何将Postgres与Python结合使用(sqlalchemy)。安装时我卡住了。我有以下错误: 我知道这是一个非常常见的错误,对此已经有很多答案,但我找不到任何帮助我解决问题的方法。 我特别不明白这个答案: 将Postgres的路径添加到您的文件夹中。通过附加以下内容创建配置文件: 这是什么意思?我该怎么办? 我还试图在我的终端中输入,但什么也没发生。 谢谢!

  • 问题内容: 我需要Python中的函数或方法来查找文件或目录的所有者。 该功能应类似于: 问题答案: 我并不是一个真正的python家伙,但是我能够做到这一点: