python - 将 IPython 变量作为参数传递给 bash 命令

标签 python bash jupyter-notebook ipython command-line-arguments

如何从 Ipython/Jupyter 笔记本执行 bash 命令,将 python 变量的值作为参数传递,如下例所示:

py_var="foo"
!grep py_var bar.txt

(显然我想为 foo 而不是文字字符串 py_var grep)

最佳答案

在您的变量名称前加上$

示例

假设您要将文件 file1 复制到存储在名为 dir_pth 的 python 变量中的路径:

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 为前缀)传递变量的相关讨论,请参阅 Passing Ipython variables as string arguments to shell command

关于python - 将 IPython 变量作为参数传递给 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497069/

相关文章:

python - 获取 Google 群组成员

python - 如何在 Linux 中找到开放端口?

json - 如何合并 bash shell 中唯一的对象 TargetGroupARNs 和 TargetGroupArn?

numpy - 值错误 : index must be monotonic increasing or decreasing

python - 在 python 中的 for 循环中创建数组,但数据未正确复制

python-3.x - 运行 Jupyter notebook 时获取 RuntimeWarning 并且永远不会连接到内核

Python 绘制一个嵌套的正方形

linux - Bash:让语句与赋值

bash - 收到错误 EOF : Command no found when using ssh

python - 如何按 '/' 拆分字符串并通过数据帧中的拆分子字符串对其进行重组?