更改当前目录python 2

Change current directory python 2

本问题已经有最佳答案,请猛点这里访问。

这不是重复的,因为原始答案对将其实现到原始输入命令解释器中没有帮助。将原始问题/答案记入贷方。

所以我在用python编写一个DOS风格的操作系统(你这个疯子),我想知道如何或者甚至是否可以执行一个可以让我在目录之间切换的命令,就像常规的命令提示可以让你这样做。我不知道我对自己的解释有多好,但基本上,我会在终端上使用与CD相同的命令,这样我就可以读取嵌入到文件夹中的文件,在文件夹之间切换等等。我不需要对它的复杂程度有任何限制,但如果不太长的话,我更愿意这样做。我还没有找到一个明确的解决办法。在最佳情况下,这就是您需要输入的全部内容

1
2
cd folder1
cd folderinfolder1

这将被输入到一个原始输入中,然后执行,所以我假设它需要拆分,这样它就知道在空间之前有"cd",在空间之后有文件名。

像这样用

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

这可能有点过分,甚至不确定是否可能


import os

os.chdir('folder1')

os.chdir('folderinfolder1')


除了在创建shell时使用c之外,我已经完成了这项工作,在我的例子中,我使用了一个带有chdir函数的库,它看起来像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
"
);
}

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
"
);
    }
    else if (ac > 1)
    {
        min_shell_path(&av, env);
        min_cmd_cd_av(av[1], env);
    }
    return (0);
}

我使用shell环境来更新pwd和oldpwd,这允许您将其实现到shell中。