2

Linuxコマンドラインで他のスクリプトを呼び出すために使用される文字列を最終的に生成する基本的なPythonスクリプトを作成しています。

例えば:

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


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

os.system(scriptCommand)

コマンド ライン引数の順序は将来変更される可能性があるため、何が生成されるかを確認したいと思います。

引数の形式を簡単に変更して正確さを確保するテンプレートを指定する Python の方法はありますか?

実際の例にはこれよりも多くのパラメーターが含まれているため、スクリプトの先頭で編集できるテンプレートを使用して順序を指定できると便利です。scriptCommand = ....変更する場合。

PS実際の引数は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 に答える