linux
  • python-2.7
  • 2012-10-05 54 views 2 likes 
    2

    我正在编写一个基本的Python脚本,最终生成一个用于在Linux命令行上调用其他脚本的字符串。Python脚本输出参数模板

    例如:

    inputFile = "loadsOfData.csv" 
    outputFile = "results.txt" 
    doThis = "-p" 
    doThat = '-a" 
    
    
    scriptCommand = "./myscript" + " " + inputFile + " " + outputFile + " " + doThis + " " + doThat 
    
    os.system(scriptCommand) 
    

    的命令行参数的顺序在将来可能会改变,我想上产生什么样的检查。

    Python中是否有某种指定模板的方法,可以很容易地更改参数的格式并确保准确性?

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

    P.S.实际的参数来自其他地方,包括argv,所以不像我的例子那样使用硬编码。

    +0

    应使用其目的是要取代'OS中的[子](http://docs.python.org/library/subprocess.html)模块。 system'。它接受一个包含该命令及其参数的列表:您可以动态构建该列表,然后将其传递给适当的'subprocess'函数。 –

    回答

    2

    您应该使用python string formatting。定义你想在你的文件中像这样的顶部要使用的格式:

    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 -p之前-a显示,在更改号码顺序 这样commandFormat = "./myscript {0} {1} {3} {2}"和输出commandFormat变量将变为:

    >>> './myscript loadsOfData.csv results.txt -a -p' 
    
    相关问题