如何从Ipython / Jupyter笔记本执行bash命令,将python变量的值作为参数传递,如下例所示:
py_var="foo"
!grep py_var bar.txt
(显然我想要foo
而不是文字字符串py_var
)
答案 0 :(得分:35)
使用$
添加变量名称前缀。
示例强>
假设您要将文件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}
答案 1 :(得分:6)
您也可以使用以下语法:
path = "../_data/"
filename = "titanicdata.htm"
! less {path + filename}
答案 2 :(得分:0)
正如@Catbuilts指出的那样,$
是有问题的。为了使其更加明确而不掩盖关键示例,请尝试以下操作:
afile='afile.txt'
!echo afile
!echo $PWD
!echo $PWD/{afile}
!echo {pwd+'/'+afile}
您会得到:
afile.txt
/Users/user/Documents/adir
/Users/user/Documents/adir/{afile}
/Users/user/Documents/adir/afile.txt