0

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

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

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

4

2 回答 2

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 模块位于同一目录中的文件的绝对路径。

于 2013-03-20T10:39:51.980 回答
-2

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

确保设置脚本的执行权限,或者明确插入 bash 的路径作为第一项INPUT

于 2013-03-20T10:39:33.140 回答