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

如何在文件中输出相对路径?Python目录结构生成求助

解决方案

要输出相对路径,核心是利用os.path.relpath()函数将遍历得到的绝对路径转换为指定基准目录的相对路径。根据你的期望输出,基准目录设为脚本所在目录的上一级即可,修改后的脚本如下:

import os

# 获取脚本所在的绝对路径
absolute_path = os.path.dirname(__file__)
# 设置基准目录(脚本目录的父目录,对应期望输出的起始层级)
base_dir = os.path.dirname(absolute_path)

with open("output.txt", "w", newline='') as a:
    for path, subdirs, files in os.walk(absolute_path):
        # 将绝对路径转为相对于基准目录的相对路径
        rel_path = os.path.relpath(path, base_dir)
        # 加上.\前缀匹配期望格式,兼容Windows系统
        rel_path_formatted = f".\\{rel_path}" if os.name == 'nt' else f"./{rel_path}"
        a.write(rel_path_formatted + os.linesep)
        for filename in files:
            a.write('\t%s\n' % filename)

关键修改说明:

  • os.path.relpath(path, base_dir):计算path相对于base_dir的相对路径,比如原绝对路径是C:\Users\User\OneDrive\bla\bla,基准目录是C:\Users\User\OneDrive,转换后得到bla\bla。
  • 平台兼容前缀:通过os.name判断系统类型,Windows下用.\\,Linux/macOS下用./,保证相对路径格式符合系统习惯。

输出示例:

修改后运行脚本,输出会和你期望的格式完全一致:

.\bla
.\bla\folder1
    file1.xxx
    file2.xxx
    file3.xxx
.\bla\folder2
    test1.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:35:36