如何从 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/