在python编译中包含bash脚本

时间:2013-03-20 10:36:30

标签: python bash

我在Python程序中使用了几个bash脚本。当前的解决方案是浏览GUI中的文件,然后像这样运行脚本(pathToScript是脚本路径的字符串):

INPUT = [pathToScript, input1, input2, input3, input4, input5, input6, input7, input8, input9, input10]
subprocess.call(INPUT)

为了避免总是浏览脚本或硬编码路径,我正在寻找一种解决方案,以某种方式在编译的Python程序中包含bash脚本,然后在程序内运行它。这可能吗?如果可以避免,我宁愿不将bash脚本重写为Python。

2 个答案:

答案 0 :(得分:3)

您始终可以将bash脚本与程序的其余部分捆绑在一起(就像我怀疑您已经在做的那样),并在运行时重建这些脚本的路径。

从模块本身获取任何python模块的位置很容易,然后从那里创建bash脚本的路径:

import os.path

LOCATION = os.path.dirname(os.path.abspath(__file__))
pathToScript = os.path.join(LOCATION, 'bashscript.sh')
然后

pathToScript将成为文件bashscript.sh的绝对路径,该文件位于与当前Python模块相同的目录中。

答案 1 :(得分:-2)

您可以将每个bash脚本的实际文本放在多行字符串变量中,然后写入 每个都出一个文件。您将知道编写文件的位置,因此您可以调用脚本。

确保设置脚本的执行权限,或者明确地将bash的路径作为INPUT

中的第一项插入