2

我正在编写一个基本的 Python 脚本,它最终会生成一个字符串,用于在 Linux 命令行上调用其他脚本。

例如:

inputFile = "loadsOfData.csv"
outputFile = "results.txt"
doThis = "-p"
doThat = '-a"


scriptCommand = "./myscript" + " " + inputFile + " " + outputFile + " " + doThis + " " + doThat

os.system(scriptCommand)

命令行参数的顺序将来可能会改变,我想检查生成的内容。

在 Python 中是否有某种方法可以指定一个模板,以便轻松更改参数的格式并确保准确性?

真实的例子有比这更多的参数,所以我很高兴能够使用我可以在脚本顶部编辑的一些模板来指定顺序,而不是在 scriptCommand = ... 中复制粘贴所有内容。如果它确实改变了。

PS 实际的 args 来自其他地方,包括 argv,因此不像我的示例中那样硬编码。

4

1 回答 1

2

您应该使用 python字符串格式化。在文件顶部定义要使用的格式,如下所示:

commandFormat = "./myscript {0} {1} {2} {3}"
inputFile = "loadsOfData.csv"
outputFile = "results.txt"
doThis = "-p"
doThat = "-a"
scriptCommand = commandFormat.format(inputFile, outputFile, doThis, doThat)
print scriptCommand

>>> './myscript loadsOfData.csv results.txt -p -a'

例如,如果您需要在所有 scriptCommand 中 -a 出现在 -p 之前,请像这样更改 commandFormat 变量中的数字顺序,commandFormat = "./myscript {0} {1} {3} {2}"输出将变为:

>>> './myscript loadsOfData.csv results.txt -a -p'
于 2012-11-11T04:48:22.723 回答