Изменение каталога в Google Colab (выход из интерпретатора Python)

Поэтому я пытаюсь git clone и cd в этот каталог с помощью Google collab, но я не могу его записать. Что я делаю неправильно?

! rm -rf SwitchFrequencyAnalysis && git clone https://github.com/ACECentre/SwitchFrequencyAnalysis.git

! cd SwitchFrequencyAnalysis

! ls datalab/SwitchFrequencyAnalysis/

Вы ожидаете, что он выведет содержимое каталога SwitchFrequencyAnalysis - но вместо этого его корень. Я чувствую, что мне не хватает чего-то очевидного - это связано с тем, что он находится в интерпретаторе python? (где есть документация?)

Демо здесь.

Ответ 1

использование

%cd SwitchFrequencyAnalysis

для изменения текущего рабочего каталога для среды ноутбука (а не только подзаголовка, которая запускает вашу команду!).

вы можете подтвердить, что он работал с командой pwd следующим образом:

!pwd

Дополнительная информация о jupyter/ipython magics: http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-cd

Ответ 3

Если вы хотите использовать функции cd или ls, вам нужны правильные идентификаторы перед именами функций (% и! Соответственно), чтобы использовать% cd и! Ls для навигации

,

!ls    # to find the directory you're in ,
%cd ./samplefolder  #if you wanna go into a folder (say samplefolder)

или если вы хотите выйти из текущей папки

%cd ../      

а затем перейдите к требуемой папке/файлу соответственно

Ответ 4

Как отмечали другие, команда cd должна начинаться со знака процента:

%cd SwitchFrequencyAnalysis

Разница между % и !

Google Colab, кажется, наследует эти синтаксисы от Jupyter (который наследует их от IPython). Джейк ВандерПлас объясняет это поведение IPython здесь. Вы можете увидеть выдержку ниже.

Если вы некоторое время играете с командами оболочки IPython, вы можете обратите внимание, что вы не можете использовать !cd для навигации по файловой системе:

In [11]: !pwd 
/home/jake/projects/myproject

In [12]: !cd ..

In [13]: !pwd 
/home/jake/projects/myproject 

Причина в том, что Команды оболочки в блокноте выполняются во временной подоболочке. Если вы хотите изменить рабочий каталог более прочным способом, Вы можете использовать магическую команду %cd:

In [14]: %cd ..
/home/jake/projects

Другой способ взглянуть на это: вам нужен %, потому что изменение каталога относится к среде текущего ноутбука, но не ко всей среде выполнения сервера.

В общем, используйте !, если команда подходит для запуска в отдельной оболочке. Используйте %, если команду необходимо выполнить на конкретном ноутбуке.

Ответ 5

Лучшее решение

Просто вы можете дать команду терминала в Google Colab или Jupyter

cd SwitchFrequencyAnalysis
ls

а затем ls для проверки. Даже для удаления вы можете дать его прямо

rm -rf SwitchFrequencyAnalysis
ls

Но для клонирования git вам нужно использовать

!git clone https://github.com/ACECentre/SwitchFrequencyAnalysis.git

Спасибо, я надеюсь, что это решает вашу проблему