2016-04-10 10 views
0

私は別のPythonスクリプトで特定のPythonスクリプトを複数回呼び出す必要があるというシナリオを持っています。別のpythonスクリプトからforループ内の同じpythonスクリプトを呼び出す

SCRIPT1:

import sys 

path=sys.argv 

print "I am a test" 
print "see! I do nothing productive." 
print "path:",path[1] 

はスクリプト2:ここでは

import subprocess 

l=list() 
l.append('root') 
l.append('root1') 
l.append('root2') 

for i in l: 
    cmd="python script1.py i" 
    subprocess.Popen(cmd,shell=True) 

、私の問題は、スクリプト2に、私は "私" のためのループ内の値を交換することはできませんよということです。 それを手伝ってもらえますか?

+0

だけのために、ループ内の文字列を作成します。 'cmd =" python script1.py "+ str(i)'です。 'i'は文字としてハードコーディングしていて、その値を使用していません。 – iamseiko

答えて

1

あなたがそれを連結することができます文字列にiの値を置換する:

cmd="python script1.py "+i 

または文字列にそれをフォーマット:

cmd="python script1.py %s"%i 

あなたは、私が代わりに変数を使用する必要があるいずれかの方法を文字列i。

0

私はあなたがこのために探していると思う:

cmd="python script1.py %s" % i 
0

使用subprocess.Popenリストに:

import subprocess 

paths = ['root', 'root1', 'root2'] 

for path in paths: 
    subprocess.Popen(['python', 'script1.py', path])