在嵌套文件夹中查找文件并动态地将文件导入为python中的模块

问题描述 投票:0回答:1

假设我的文件结构如下:

folder1

  --start.py
  --file1.py

  folder2
    --file2.py

  folderX
    --fileX.py
  ...

在start.py中,我动态获取文件的名称,例如:

file_name = "file3"

我不知道“file3”在哪里,因为我没有得到它的文件路径。它可能与 start.py 或某些folder2、folderX 等位于同一文件夹中。 然后我需要动态导入“file3”,为此我需要知道它到 start.py 的相对路径。

import_module(f"{file_path}")

如何找到“file3”及其路径以便调用导入?

感谢您的回复,我是初学者,如果不清楚,很抱歉。尝试获取相对路径失败

**编辑:所有文件和文件夹都有随机名称,未排序 另外,folder1上面有一个文件结构,我只需要查看folder1内部即可。

python python-3.x module relative-path import-module
1个回答
0
投票

这应该对你有帮助

import os
def find_file(root_folder, target_file):
    for root, dirs, files in os.walk(root_folder):
        if target_file in files:
            return os.path.join(root, target_file)
    return None

root_folder = '/path/to/unknown/root/folder'
target_file = 'file_name.txt'

file_path = find_file(root_folder, target_file)

if file_path:
    print(f"File '{target_file}' found at: {file_path}")
else:
    print(f"File '{target_file}' not found in the specified folder.")```
© www.soinside.com 2019 - 2024. All rights reserved.