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

Python脚本错误报告文件绝对路径为当前工作目录而非实际目录

问题根源

你遇到的核心问题是:os.listdir(parent_dir)仅返回目录下的文件名/文件夹名,不包含完整路径。后续用os.path.abspath(track)或Path(track)处理纯文件名时,Python会默认把当前工作目录(CWD)与文件名拼接,导致路径指向错误位置。

另外,os.path.dirname(str(track))返回空值是正常行为——因为track只是纯文件名,没有上级目录信息,dirname对这类输入自然返回空字符串。

解决方案

修改代码,让tracks列表存储文件的完整路径,而非仅文件名:

# 遍历目录并生成完整路径
tracks = [os.path.join(parent_dir, f) for f in os.listdir(parent_dir)]

# 过滤仅保留文件(用完整路径判断)
tracks = [f for f in tracks if os.path.isfile(f)] 

# 统计结果
print(f"Found {len(tracks)} unsorted files in parent directory.")

# 打印当前工作目录(用于排查)
print(f"CWD: {Path.cwd()}")

# 打印每个文件的绝对路径
for track in tracks:
    # 直接打印完整路径即可,无需额外转换
    print(track)
    # 或者用Path对象处理(可选)
    # p_track = Path(track)
    # print(p_track.absolute())
关键说明
  • os.path.join(parent_dir, f)会自动根据系统拼接正确的路径分隔符(Windows为\,Linux/macOS为/),避免手动拼接parent_dir+'/'+f的跨平台问题。
  • 过滤文件时,直接用完整路径传入os.path.isfile,判断更准确。
  • 处理完成后,tracks中的每个元素都是文件的完整路径,后续操作会直接指向正确的Test_Music目录。
修正后输出示例
Found 11 unsorted files in parent directory.
CWD: C:\Users\im\Desktop\Programming
C:\Users\im\Desktop\Programming\Music\Test_Music\01 Sanctuary 1.mp3
C:\Users\im\Desktop\Programming\Music\Test_Music\01 Soft.mp3
...(其余文件路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:43:13