web-dev-qa-db-ja.com

Google colabでディレクトリを変更する(pythonインタープリターのブレークアウト)

だから私はgit cloneして、Google collabを使用してそのディレクトリにcdしようとしていますが、cdすることはできません。私は何を間違えていますか?

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

!cd SwitchFrequencyAnalysis

!ls datalab/SwitchFrequencyAnalysis /

SwitchFrequencyAnalysisのディレクトリの内容を出力すると予想されますが、代わりにそのルートが出力されます。私は明白な何かを見逃していると感じています-pythonインタプリタ内にいることと関係がありますか? (ドキュメントはどこにありますか??)

デモはこちら

27
willwade

つかいます

%cd SwitchFrequencyAnalysis

(!コマンドを実行するサブシェルだけでなく)ノートブック環境の現在の作業ディレクトリを変更します。

次のようなpwdコマンドで動作することを確認できます。

!pwd

jupyter/ipython magicsの詳細: http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-cd

38

os.chdirを使用します。完全な例を次に示します。 https://colab.research.google.com/notebook#fileId=1CSPBdmY0TxU038aKscL8YJ3ELgCiGGj

コンパクトに:

!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
24
Bob Smith

Cdまたはls関数を使用する場合、関数名(それぞれ%と!)を使用する前に適切な識別子が必要です。%cdと!lsを使用して移動します

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

または、現在のフォルダーから出たい場合

%cd ../      

そして、必要に応じて必要なフォルダ/ファイルに移動します

19
Vishnu Zsf

他の人が指摘したように、cdコマンドはパーセント記号で開始する必要があります。

%cd SwitchFrequencyAnalysis

%!の違い

Google Colabは、これらの構文をJupyter(IPythonから継承)から継承しているようです。 Jake VanderPlasがこのIPythonの動作を説明します ここ 。以下の抜粋をご覧ください。

IPythonのシェルコマンドをしばらく使用すると、cannot!cdを使用してファイルシステムをナビゲートすることに気付く場合があります。

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

In [12]: !cd ..

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

その理由は、ノートブックのシェルコマンドが一時的なサブシェルで実行されるためです。より永続的な方法で作業ディレクトリを変更したい場合は、%cd magicコマンドを使用できます。

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

これを見る別の方法:%が必要です。これは、ディレクトリの変更がサーバーランタイム全体ではなく、現在のノートブックの環境に関連するためです。

一般に、コマンドが別のシェルで実行しても問題ない場合は、!を使用します。特定のノートブックでコマンドを実行する必要がある場合は、%を使用します。

3
Simon Seo

より良い解決策

Google ColabまたはJupyterで端末コマンドを送信するだけです

cd SwitchFrequencyAnalysis
ls

次に、lsで確認します。取り外しても直接与えることができます

rm -rf SwitchFrequencyAnalysis
ls

しかし、gitをクローンするには、使用する必要があります

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

ありがとうこれで問題が解決することを願っています

0
HimanshuGahlot