私はちょうどIPythonで遊んでいます。現在、私はどのように関数内のpython変数でシェルコマンドを実行することが可能だろうと思っています。例:インタラクティブなIPythonシェルの関数からシェルコマンドを呼び出す
def x(go):
return !ls -la {go}
x("*.rar")
これにより、「sh:1:構文エラー:予期しないファイルの終了」が表示されます。誰かが私の "x" -functionが "ls -la * .rar"のようなlsを呼び出せるようにする方法の手がかりを与えてもらえますか?私の作業ディレクトリに* .rarファイルがあります。あなたはhistory
コマンドの出力を見れば
は、事前に ライナー
こんにちはとTHXあなたの迅速な対応のために:
あなたは自分自身に変数の展開を行うことによってそれを避けることができます!私はそれを試してみたところ、 "_ip"を "_ip = get_ipython()"で取得する必要があることがわかりました。しかし、実際には "ls"の出力を解析しません。私はsubprocess.Popen()を使い続けると思います。これは悲しいことに、 "!"と同じくらい便利ではありません。 IPythonで。 Cheers、Rainer – dubbaluga
システムコマンドの結果を変数 'files =!ls -la'に代入すると' files = get_ipython()。getoutput( 'ls -la foo') 'に変換されます。 –
@jcollado: 'subprocess.Popen'はおそらくこれのようなもののために残忍です。 'subprocess.check_output'のようなモジュールレベルの関数を見てみましょう:http://docs.python.org/library/subprocess#subprocess.check_output –