亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更改當前目錄并查看可用目錄

更改當前目錄并查看可用目錄

元芳怎么了 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 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號