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

如何修复Python代码以输出指定文件夹下文件的绝对路径?

如何在Python中获取并打印文件的绝对路径?

一、通用解决方案

在Python中获取文件绝对路径主要有两种常用方式,分别基于os.path模块和更现代的pathlib模块(Python 3.4+推荐):

1. 使用os.path模块

os.path模块提供了一系列路径操作工具,核心思路是将文件夹路径与文件名拼接,再转换为绝对路径:

  • os.path.join(folder_path, filename):拼接文件夹路径和文件名,得到完整的相对/绝对路径
  • os.path.abspath(full_path):将任意路径转换为绝对路径

示例代码:

import os

# 目标文件夹路径(可以是相对或绝对路径)
target_folder = "./your_target_folder"

# 遍历文件夹,筛选指定后缀的文件并收集绝对路径
absolute_paths = []
for filename in os.listdir(target_folder):
    if filename.endswith("ch4.TXT"):
        # 拼接完整路径
        full_path = os.path.join(target_folder, filename)
        # 转换为绝对路径
        abs_path = os.path.abspath(full_path)
        absolute_paths.append(abs_path)

print(absolute_paths)

2. 使用pathlib模块(更简洁)

pathlib是Python 3.4引入的面向对象路径操作库,代码更直观易读:

  • Path(folder_path).iterdir():遍历文件夹下的所有路径对象(包含完整路径)
  • path.absolute() / path.resolve():获取路径的绝对形式

示例代码:

from pathlib import Path

target_folder = Path("./your_target_folder")

# 列表推导式快速筛选并收集绝对路径
absolute_paths = [str(path.absolute()) for path in target_folder.iterdir() 
                  if path.name.endswith("ch4.TXT")]

# 也可以直接保留Path对象,打印时会自动显示绝对路径
# absolute_paths = [path.absolute() for path in target_folder.iterdir() if path.name.endswith("ch4.TXT")]

print(absolute_paths)

二、针对你的代码的修复方案

你的现有代码只输出文件名,是因为os.listdir()仅返回文件夹内的文件名,不包含路径信息。只需要在拼接时补上文件夹路径即可,修复后的代码如下:

import os

# 替换为你的目标文件夹实际路径(比如"/home/geomario/data"或者"./subfolder")
folder_path = "URL"
ch = []
for file in os.listdir(folder_path):
    if file.endswith("ch4.TXT"):
        # 关键:拼接文件夹路径和文件名,得到完整路径
        full_path = os.path.join(folder_path, file)
        # 转换为绝对路径(如果你的folder_path是相对路径,推荐加上这一步)
        absolute_path = os.path.abspath(full_path)
        ch.append(absolute_path)
print(ch)

为什么这样修复?

  • os.listdir("URL")返回的只是像file1.ch4.TXT这样的纯文件名,没有路径前缀
  • os.path.join(folder_path, file)将文件夹路径和文件名组合成完整路径(比如URL/file1.ch4.TXT)
  • os.path.abspath()确保最终路径是系统可识别的绝对路径(比如/home/user/URL/file1.ch4.TXT)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:22:06