在Python中将已知的目录名称更改为未知的绝对路径。

2024-04-18 21:10:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将cwd更改为特定文件夹。 文件夹名是已知的;但是,其路径会有所不同。你知道吗

我正在尝试以下操作,但似乎无法得到我想要的:

absolute_path = os.path.abspath(folder_name)
directory_path = os.path.dirname(absolute_path)
os.chdir(directory_path)

这并不能满足我的要求,因为它将原始cwd保存到运行.py文件的位置。我尝试在第一个代码块之前添加os.chdir(os.path.expanduser("~"));但是,它只是创建到/home/user/folder\u name的绝对路径。你知道吗

当然,如果有一个简单的导入,我可以使用,我会开放的任何东西。你知道吗

获取具有特定名称的所有文件夹的路径的正确方法是什么?你知道吗


Tags: 文件path代码namepy路径文件夹os
2条回答
def find_folders(start_path,needle):
   for cwd, folders, files,in os.walk(start_path):
       if needle in folders:
           yield os.path.join(cwd,needle)

for path in find_folders("/","a_folder_named_x"):
    print path

所做的一切就是从给定的开始路径遍历目录结构,找到一个名为needle的文件夹的所有实例

在本例中,它从系统的根文件夹开始,查找名为“a_folder_named_x”的文件夹。。。请注意,如果你需要搜索整个系统,这可能需要一段时间才能运行。。。你知道吗

您需要了解abspath接受相对路径名(可能只是一个文件名),并提供等效的绝对(完整)路径名。相对路径名是指在当前目录中开始的路径名;不涉及任何搜索,因此它总是指向一个位置(可能存在也可能不存在)。你知道吗

实际上,您需要的是搜索目录树,从~或任何对您有意义的目录开始,直到找到具有所请求名称的文件夹。这就是@Joran的代码所做的。你知道吗

相关问题 更多 >