我在Python程序中使用了几个bash脚本。当前的解决方案是浏览GUI中的文件,然后像这样运行脚本(pathToScript
是脚本路径的字符串):
INPUT = [pathToScript, input1, input2, input3, input4, input5, input6, input7, input8, input9, input10]
subprocess.call(INPUT)
为了避免总是浏览脚本或硬编码路径,我正在寻找一种解决方案,以某种方式在编译的Python程序中包含bash脚本,然后在程序内运行它。这可能吗?如果可以避免,我宁愿不将bash脚本重写为Python。
答案 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