Python найти файл и изменить каталог на путь к файлу

Я хочу использовать os.walk для поиска в cwd и его подкаталогах, чтобы найти конкретный файл, а когда найден, сразу прервется и перейдет в этот каталог. Я видел много примеров, где он ломается после определения местоположения файла, но я не могу понять, как извлечь путь, чтобы я мог изменить каталог.

2 ответа

Решение

Что-то вроде этого?

f = 'filename'
for path, dirs, files in os.walk('.'):
    if f in files:
        os.chdir(path)
        break
import os

required_file = "somefile.txt"
cwd = '.'

def get_dir_name(cwd, required_file):
  for dirName, subdirList, fileList in os.walk(cwd):
    for fname in fileList:
        if fname == required_file:
            change_to_dir = os.path.abspath(dirName)
            return change_to_dir

change_to_dir = get_dir_name(cwd, required_file)
os.chdir(change_to_dir)
Другие вопросы по тегам