111

因此,我正在尝试使用 Google 协作将 git clone 和 cd 放入该目录 - 但我无法 cd 进入该目录。我究竟做错了什么?

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

!cd 开关频率分析

!ls 数据实验室/ SwitchFrequencyAnalysis/

您可能希望它输出 SwitchFrequencyAnalysis 的目录内容 - 但它是根目录。我觉得我遗漏了一些明显的东西——这与在 python 解释器中有关吗?(文档在哪里??)

演示在这里。

4

6 回答 6

161

利用

%cd SwitchFrequencyAnalysis

更改笔记本环境的当前工作目录(而不仅仅是运行您的 ! 命令的子shell)。

pwd您可以使用以下命令确认它是否有效:

!pwd

有关 jupyter / ipython 魔法的更多信息:http: //ipython.readthedocs.io/en/stable/interactive/magics.html#magic-cd

于 2018-01-25T08:03:18.310 回答
100

正如其他人指出的那样,cd命令需要以百分号开头:

%cd SwitchFrequencyAnalysis

%和之间的区别!

Google Colab 似乎从 Jupyter 继承了这些语法(从 IPython 继承了它们)。Jake VanderPlas在这里解释了这种 IPython 行为。你可以看到下面的摘录。

如果您使用 IPython 的 shell 命令一段时间,您可能会注意到您无法使用它!cd来导航文件系统:

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

In [12]: !cd ..

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

原因是 notebook 中的 shell 命令是在临时子 shell 中执行的。如果您想以更持久的方式更改工作目录,可以使用%cd魔术命令:

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

另一种看待这个的方式:你需要%,因为更改目录与​​当前笔记本的环境有关,但与整个服务器运行时无关。

通常,!如果该命令可以在单独的 shell 中运行,则使用该命令。%如果需要在特定笔记本上运行命令,请使用。

于 2019-07-26T02:47:37.843 回答
44

使用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
于 2018-01-17T16:30:34.143 回答
31

如果您想使用 cd 或 ls 函数,您需要在函数名称(分别为 % 和 !)之前使用正确的标识符使用 %cd 和 !ls 来导航

.

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

或者如果你想退出当前文件夹

%cd ../      

然后相应地导航到所需的文件夹/文件

于 2018-06-14T11:29:55.353 回答
22
!pwd
import os
os.chdir('/content/drive/My Drive/Colab Notebooks/Data')
!pwd

查看此答案以获取详细说明 https://stackoverflow.com/a/61636734/11535267

于 2020-05-06T13:46:15.597 回答
0

我相信您必须先安装 Google Drive,然后再执行其他操作。

from google.colab import drive
drive.mount('/content/drive')
于 2021-11-20T03:44:32.993 回答