我有一个 python 程序,首先我编辑一个文件,然后根据修改后的文件执行一个子进程调用。代码是
mwhome=sys.argv[1]
wlst=mwhome+"/oracle_common/common/bin/wlst.sh"
scriptloc=cwd+"/addldap.py"
dest=cwd+'/t6.py.temp'
source=open(scriptloc,'r')
destination=open('t6.py.temp','w')
for line in source:
if line.strip().startswith('adminUser'):
destination.write('adminUser=\"'+adminusername+"\"\n")
continue
elif line.strip().startswith('adminPassword'):
destination.write('adminPassword=\"'+adminpassword+"\"\n")
continue
elif line.strip().startswith('adminServerPort'):
destination.write('adminServerPort=\"'+adminserverport+"\"\n")
continue
else:
destination.write(line)
continue
shutil.move(dest, scriptloc)
print "starting adding ldap"
output = subprocess.call([ wlst,scriptloc])
如果我不执行循环和替换的修改文件,则 subprocess.call 正在工作。如果我执行修改 for 循环,则子进程调用不会获取 scriptloc 文件,而只是在没有适当参数的情况下执行 wlst.sh。
哪个命令与执行有关?
注意:放置一个 source.close() 并尝试但徒劳无功