Python,os.chdir 出现问题

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

我遇到以下 Python 代码的问题,该代码旨在使用

os.chdir
更改工作目录:

if command.startswith("cd"): #C:\Users\užívateľ\Desktop\File Manager\File Manager\task\module\root_folder
  command = command[3:] #input cd task
  os.chdir(command) # command [3:] is task
  print(os.getcwd()) #os.chdir(command) FileNotFoundError: [WinError 2] The system cannot find the file specified: 'task'

问题

代码抛出

FileNotFoundError
,并显示消息“系统找不到指定的文件:‘任务’”。

预期输出(任一):

  • 绝对路径:
    C:\Users\užívateľ\Desktop\File Manager\File Manager\task
  • 当前工作目录的相对路径:
    task

我可以问在哪里修复代码,以便它正确更改工作目录并打印所需的路径(绝对或相对)吗?

python operating-system chdir
1个回答
0
投票

问题是 python 正在当前目录中查找任务文件夹,而任务文件夹位于父目录之一中,因此您必须告诉 python 继续搜索文件夹并返回,直到找到正确的目录。 os.chdir 不能用作绝对文件夹搜索器。我创建了一个函数来进行搜索,但这只能向后搜索。我希望这有效

command = 'cd task'
if command.startswith("cd"):
    command = command[3:]

def find_folder(folder):
    current_directory = os.getcwd()#current folder

    # Check if task is in the folder
    if folder in os.listdir(current_directory):
        return os.chdir(folder)
    else:
        os.chdir('..')#Go back one folder
        #recall the function to do a loop
        return find_folder(folder)

find_folder(command)
print(os.getcwd())
© www.soinside.com 2019 - 2024. All rights reserved.