2017-08-24 29 views
0

pythonスクリプトを5回実行します。各実行からの出力は画像であり、最後に保存された5枚の画像が必要です。これを行うには、私はos.system()コマンドを使用しています、と私は次のエラーで終わる:ここ引数をos.system()に渡すのに問題があります

TypeError: system() takes at most 1 argument (3 given) 

は私のコードです:

import os 
i = 1 

    while i < 6: 
     run = os.system ('python main.py', 'input laska.png', 'output laska_save' + str(i) + '.png') 
     i = i + 1 

ないここでの問題が何であるかを確認します。私は本質的に出力引数をlaska_save1, laske_save2 ... laska_save5にしたい。インクリメントは、呼び出されたスクリプトが実行された後、毎回5回発生します。

ご了承ください。次のように

+0

どのように入力をmain.pyで取っていますか? os.system()で 'input'と' output'を使わずに引数を直接引数として取れることを知っていますか? –

答えて

1

あなたはただ1つの文字列でそれを呼び出す必要があります:

os.system('python main.py input laska.png output laska_save{}.png'.format(i)) 

os.systemdocumentationは、関数に渡す前に、コマンドとその完全な文字列を作成する必要がありますので、それだけで、引数として文字列を取ると言います。

0

コマンドプロンプトで入力するコマンドの文字列をフォーマットするだけです。例えば : test.pyは、入力ファイルfile.csvを取るスクリプトであれば、あなたのmain.pyは二つの引数を入力ファイル(laska.png)と、出力ファイルの名前あなたのwhileループの意志を取っている場合は、コードが

os.system("python {0} {1}".format(test_filepath,file.csv_filepath)) 
0

になります -
os.system('python main.py laska.png laska_save{}.png'.format(i))