1. ホーム
  2. python

[解決済み] IPythonの変数をbashコマンドの引数として渡す

2022-10-15 17:12:31

質問

Ipython/Jupyter notebookから、この例のようにpythonの変数の値を引数としてbashコマンドを実行するにはどうすればよいのでしょうか?

py_var="foo"
!grep py_var bar.txt

(当然 foo であって、リテラルな文字列 py_var )

どのように解決するのですか?

接頭辞に 変数 の名前を $ .

あるファイルをコピーしたいとします file1 という名前の python 変数に格納されたパスにコピーしたいとします。 dir_pth :

dir_path = "/home/foo/bar"
!cp file1 $dir_path

IpythonまたはJupyterノートブックから。

編集

Catbuilts さんの提案により、複数の文字列を連結してパスを形成したい場合は {..} の代わりに $..$ . どちらの状況でも有効な一般的な解決策は {..}

dir_path = "/home/foo/bar"
!cp file1 {dir_path}

また、別の文字列を連結する場合は sub_dir をパスに追加するのであれば

!cp file1 {dir_path + sub_dir}

編集2

生の文字列の使用に関する関連した議論については、(接頭辞として r ) を使って変数を渡すことについては Ipythonの変数をシェルコマンドの文字列引数として渡す