Изменение каталога в 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
Ответ 2
Используйте os.chdir
. Вот полный пример: https://colab.research.google.com/notebook#fileId=1CSPBdmY0TxU038aKscL8YJ3ELgCiGGju
Компактно:
!mkdir abc
!echo "file" > abc/123.txt
import os
os.chdir('abc')
# Now the directory 'abc' is the current working directory.
# and will show 123.txt.
!ls
Ответ 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
Спасибо, я надеюсь, что это решает вашу проблему