【发布时间】:2026-02-25 17:50:02
【问题描述】:
我有以下代码,预计会做以下事情,
- 提供目录名称 (dirName) 和前缀作为函数的输入。
- 列出从提供的输入目录 (dirName) 向下一级的所有内容,并开始使用 os.walk 函数在子目录中填充文件详细信息。
- 一旦找到文件,就会根据特定前缀检查它们并进行进一步处理。
-
动机是一旦文件被识别(满足前缀),我想要该文件的绝对真实路径。我尝试使用 Path(libfile).resolve() 选项,但它只给出运行脚本的当前工作目录,而不是该文件的实际路径。你能解释一下我哪里出错了吗?
import os from pathlib import Path def directory(dirName, prefix): process_dir = [name for name in os.listdir(dirName) if os.path.isdir(os.path.join(dirName, name))] for entry in process_dir: for dirname, directory, files in os.walk(os.path.join(dirName, entry)): for libfile in files: if libfile.startswith((prefix)): return(Path(libfile).resolve())
Python 版本 3.6.2。
【问题讨论】:
-
我使用的是python 3.6.2
-
看一下
libfile的值,应该立即明白为什么python 找不到它的绝对路径。这是一个文件名。您的文件系统上可能有 500 万个具有该名称的文件。 python 应该如何知道你的意思是哪一个? -
是的 libfile 是一个文件名,我想要它的完整真实路径。我的理解是Path函数应该能够解析python中文件的真实路径
-
@wim,什么是 MCVE?
-
那么,文件名
foo.txt的真实路径是什么?
标签: python python-3.x pathlib