我想知道是否可以从python程序调用shell脚本,但是shell脚本与python文件不在同一目录中?
目前,我刚刚成功地调用了一个shell脚本,该脚本位于调用它的python文件所在的目录中,这要归功于以下命令:
因此,基本上,在我要做的程序中,我不能更改bash脚本的位置,所以我必须找到一种方法从python文件调用这个bash脚本(qnd没有在同一路径中)>
subprocess.call(["./my_shell_script.sh",my_argument])
谢谢你
解决方案:
^{pr2}$
乔丹
Tags:
./my_shell_script.sh
表示当前工作目录“中的”my_shell_script
。在您是否尝试过用脚本中的absolute path替换它?在
或者,如果脚本路径在当前的PATH environment variable中:
^{pr2}$或者再次(如果脚本路径在当前路径中):
从上面可以看出,第一个和第二个解决方案需要一个适当的shebang(
#!/bin/bash
)作为脚本的第一行。第三种解决方案没有这种“限制”。在编辑:
如果要启动路径与当前工作目录相关的脚本,则必须提供relative path。这允许Python脚本和Shell脚本在周围移动,只要它们的相对位置不变。在
例如,如果脚本位于当前工作目录的子目录
my_subdir
中,则可以编写:您还必须有机会使用
..
将向上导航到一个级别。你可以多次使用它来提升几个层次。例如:上面的例子将启动
my_shell_script
在a/b/c
子目录中,从当前工作目录上方的两个级别开始。在如果遇到问题,可以打开整个流程:
也可以将其设置为shell模式。 这样你就可以让操作系统以你可能更熟悉的方式来处理事情。在
我想你的路径中没有任何奇怪的字符?在
应始终传递脚本的完整路径:
相关问题 更多 >
编程相关推荐