为了账号安全,请及时绑定邮箱和手机立即绑定

更改当前目录并查看可用目录

更改当前目录并查看可用目录

元芳怎么了 2021-10-19 09:44:44
这不是重复的,因为原始答案无助于将其实现到我的原始输入命令解释器中。归功于原始问题/答案。所以我正在用 python 开发 DOS 风格的操作系统,我想知道如何或者甚至是否可以执行一个命令,让我像常规命令提示符那样在目录之间切换。我不确定我对自己的解释有多好,但基本上我会使用与cd终端相同的命令,这样我就可以读取文件夹中嵌入的文件,在文件夹之间切换等。我不需要对它的复杂程度进行任何限制,但是如果它不是太长,我会更喜欢。我还没有找到一个明确的解决方案。在最好的情况下,这就是您需要输入的全部内容cd folder1cd folderinfolder1这将被输入到 araw input或 ainput然后执行,所以我假设它需要拆分,所以它知道在空间之前和空间cd之后有文件名,例如folder 我也有os.listdir只使用显示文件的问题,而不是任何文件夹。它会像这样使用directory=raw_input("enter cd followed with a directory")这个问题可能有点多,甚至不确定是否可能
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

import os

os.chdir('folder1')

或者

os.chdir('folderinfolder1')


查看完整回答
反对 回复 2021-10-19
?
皈依舞

TA贡献1851条经验 获得超3个赞

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


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 中。


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号