You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中带最大长度限制的文件路径美化打印函数问询

Python 实现带长度限制的文件路径美化打印

Python标准库中没有直接提供满足你需求的现成函数,但可以自己实现一个符合要求的pretty_print函数,确保保留盘符、文件名,同时截断中间目录使总长度不超过指定限制。

实现代码

import os

def pretty_print(file_path, max_length=35):
    # 拆分盘符与路径主体
    drive, rest = os.path.splitdrive(file_path)
    # 拆分目录部分与文件名
    dir_part, filename = os.path.split(rest)
    
    # 计算基础结构的长度:盘符 + "..." + 文件名
    base_len = len(drive) + 3 + len(filename)
    
    # 极端情况:基础结构已超过长度限制,优先保留盘符和文件名核心部分
    if base_len > max_length:
        truncated_filename = filename[:max_length - len(drive) - 3]
        return f"{drive}...{truncated_filename}"
    
    # 若原路径长度未超限制,直接返回原路径
    if len(file_path) <= max_length:
        return file_path
    
    # 计算可分配给目录部分的长度,截取前半段目录
    available_dir_len = max_length - base_len
    truncated_dir = dir_part[:available_dir_len]
    
    # 拼接最终路径
    return f"{drive}{truncated_dir}...{filename}"

示例调用与输出

调用:

pretty_print(r"C:\Program Files\Common Files\Adobe\Keyfiles\dynamiclink\7.0\ConflictingP.xml", max_length=35)

输出:

C:\Program Files\...\ConflictingP.xml

函数逻辑说明

  • 借助os.path.splitdrive和os.path.split拆分路径的盘符、目录、文件名,确保核心部分不丢失
  • 先校验基础结构(盘符+省略号+文件名)的长度,避免极端情况下无法保留关键信息
  • 若原路径长度符合要求,直接返回原路径;否则截取目录的前半部分,用...替代被截断的中间目录,保证总长度不超过限制

内容的提问来源于stack exchange,提问作者Omar Zaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:40:28