私は完了しようとしたスクリプトの一部を切りました。各反復の後にmylineS.split()[0]
の新しい結果が出ることを期待しています。 outS.txt
およびoutT.txt
は、各反復ごとにcommandC
の結果であり、結果は反復ごとに異なります。しかし、mylineS.split()[0]
は各反復ごとに最初の結果を返します。whileループ中のopen文で何かが間違っています
私のアプローチで何か間違っていると思いますか?
B = 0
while B < len(Source_Tdevs):
devS = Source_Tdevs[B]
devT = Target_Tdevs[B]
subprocess.run(commandC, shell=True)
print (devS)
with open('outS.txt', 'r') as gS:
CS = len(gS.readlines())
mylineS = linecache.getline('outS.txt', CS -1)
Source_Tdevs_SGs.append(mylineS.split()[0])
**print (mylineS.split()[0])**
gS.close()
with open('outT.txt', 'r') as gT:
CT = len(gT.readlines())
mylineT = linecache.getline('outT.txt', CT - 1)
Target_Tdevs_SGs.append(mylineT.split()[0])
gT.close()
subprocess.run('del outS.txt, outT.txt', shell=True)
B= B + 1
コマンドCは、subprocess.run(commandC, shell=True)
の1行上です。私は底を書いています。
commandC = 'set "SYMCLI_OFFLINE=1" & set "SYMCLI_DB_FILE=C:\PROGRAM FILES\EMC\SYMAPI\DB\SYMAPI_DB.BIN" & call symaccess -sid %s list -type storage -dev %s > outS.txt & call symaccess -sid %s list -type storage -dev %s > outT.txt' % (
sid, devS, sid, devT)
あなたは(オープンで使用する場合、ファイルをクローズする必要はありません)。 –