linux - 我如何在 python 中获得 unix 中的最大文件系统路径长度?

标签 linux python-2.7 path filesystems max-path

在我维护的代码中,我遇到了:

from ctypes.wintypes import MAX_PATH

我想将其更改为:

try:
    from ctypes.wintypes import MAX_PATH
except ValueError: # raises on linux
    MAX_PATH = 4096 # see comments

但我找不到任何方法从 python (os, os.path, sys...) 获取最大文件系统路径的值 - 有标准方法还是我需要外部库?

或者在 linux 中没有类似 MAX_PATH 的东西,至少不是发行版中的标准?


Answer

try:
    MAX_PATH = int(subprocess.check_output(['getconf', 'PATH_MAX', '/']))
except (ValueError, subprocess.CalledProcessError, OSError):
    deprint('calling getconf failed - error:', traceback=True)
    MAX_PATH = 4096

最佳答案

正确的方法是将os.pathconfos.fpathconfPC_一起使用前缀名称:

>>> os.pathconf('/', 'PC_PATH_MAX')
4096
>>> os.pathconf('/', 'PC_NAME_MAX')
255

请注意,路径组件 的最大长度可能因目录而异,因为它取决于文件系统,因此您可能有 os.pathconf('/', 'PC_NAME_MAX' ) 为 255,os.pathconf('/', 'PC_NAME_MAX') 为 12,比方说。

关于linux - 我如何在 python 中获得 unix 中的最大文件系统路径长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807560/

相关文章:

python-2.7 - 如何使用 PeeWee 将选择查询转换为 pandas DataFrame

python - 如何在 Matplotlib 中的图框外绘制矩形

c++ - 获取应用程序 Windows 的完整目录

c - C中二进制文件的路径

c++ - 使用共享库进行变体处理是个好主意吗?

c++ - 以编程方式使用 Mac 地址解析 IP 地址

mysql - 从Shell界面将数据加载到mysql数据库中

linux - 更改默认 python3 或在 Ubuntu 上卸载一个安装

python - 如何从 python 更改 Linux 用户密码

java - 带空格的路径