更改当前目录python 2

时间:2019-01-23 22:43:00

标签: python directory python-2.x cd

这不是重复的,因为原始答案无助于将其实现到我的原始输入命令解释器中。归因于原始问题/答案。

因此,我在python中使用dos风格的操作系统(您是疯子),我想知道如何或什至可以执行一条命令,让我像常规命令提示符一样在目录之间切换。我不确定自己在解释自己的能力如何,但基本上我会在终端中使用与cd相同的命令,以便可以读取嵌入在文件夹中的文件,在文件夹之间进行更改等。我不需要任何复杂程度的限制,但我更喜欢如果时间不长。我还没有找到一个明确的解决方案。在最佳情况下,这就是您需要输入的全部内容

cd folder1
cd folderinfolder1

这将被输入到原始输入中,然后执行,因此我假设它需要分割,因此它知道在空格之前有'cd'且在空格之后有文件名

它会这样使用

directory=raw_input("enter cd followed with a directory")


这可能要问很多,甚至不确定是否可能

2 个答案:

答案 0 :(得分:1)

import os

os.chdir('folder1')

os.chdir('folderinfolder1')

答案 1 :(得分:-1)

除了在创建外壳程序时使用 C 之外,我已经完成了此操作,在我的情况下,我使用了带有 chdir < / strong>函数,它看起来像这样:

static void min_cmd_cd_av(char *av, char ***env)
{
    char    *tmp;

    if (av && 0 == chdir(av))
    {
        tmp = min_env_get_val(env, "PWD=");
        min_env_set_path(env, "OLDPWD=", tmp);
        free(tmp);
        tmp = (char *)ft_memalloc(4098 * sizeof(char *));
        getcwd(tmp, 4098);
        min_env_set_path(env, "PWD=", tmp);
        ft_strdel(&tmp);
    }
    else
        ft_printf("\e[91mERROR: Invalid Path/Permissions\e[96m\n");
}

int         min_cmd_cd(int ac, char **av, char ***env)
{
    char    *tmp;

    if (ac <= 1)
    {
        tmp = min_env_get_val(env, "HOME=");
        if (tmp)
        {
            min_cmd_cd_av(tmp, env);
            ft_strdel(&tmp);
        }
        else
            ft_printf("\e[91mERROR: Home variable not found!\e[96m\n");
    }
    else if (ac > 1)
    {
        min_shell_path(&av, env);
        min_cmd_cd_av(av[1], env);
    }
    return (0);
}

我使用了shell环境来更新PWD和OLDPWD,这也使您也可以将其实现到shell中。