Я пытаюсь найти список и извлечь из него нужные мне значения. По какой-то причине он не продолжает цикл for
, может быть, это связано с try
и except
? Сейчас я использовал несколько попыток, но не вижу, что я делаю неправильно, кто-нибудь может мне помочь с этим?
valueslist = ["Time:", "Name:", "Pid:", "VmPeak:", "VmSize:", "VmPin:", "VmLck:", "VmHWM:", "VmRSS:", "RssAnon:", "RssFile:", "RssShmem:", "VmData:", "VmStk:", "VmExe:", "VmLib:", "VmPTE:", "VmSwap:", "voluntary_ctxt_switches:", "nonvoluntary_ctxt_switches:"]
Time, Name, Pid, VmPeak, VmSize, VmPin, VmLck, VmHWM, VmRSS, RssAnon, RssFile, RssShmem, VmData, VmStk, VmExe, VmLib, VmPTE, VmSwap, voluntary_ctxt_switches, nonvoluntary_ctxt_switches = [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []
appendlist = [Time, Name, Pid, VmPeak, VmSize, VmPin, VmLck, VmHWM, VmRSS, RssAnon, RssFile, RssShmem, VmData, VmStk, VmExe, VmLib, VmPTE, VmSwap, voluntary_ctxt_switches, nonvoluntary_ctxt_switches]
for row in range(1, len(ReaderSplit)):
ReaderSplitSplit = ReaderSplit[row].split()
for i in range(len(valueslist)):
factor = 1
print("VALUESLIST:", valueslist[i])
print("READERSPLITSPLIT:", ReaderSplitSplit)
if i==0:
appendlist[i].append(ReaderSplitSplit[0]) # The name in valuelist is not in ReaderSplitSplit, but always contained @ ReaderSplitSplit[0]
if not i == 0:
try:
index = ReaderSplitSplit.index("{}".format(valueslist[i])) # try because .index throws exception if valuelist[i] is not element
except ValueError:
pass
if len(ReaderSplitSplit)>index+2: # if this occurs, then size is not in kb or MB so the usual "else" works
if ReaderSplitSplit[index+2] == "kB":
factor = 1000
elif ReaderSplitSplit[index+2] == "MB":
factor = 1000*1000
appendlist[i].append(int(ReaderSplitSplit[index+1])*factor)
print("APPENDLIST:", appendlist[i])
Я ожидал, что это напечатает мне список каждого нового списка значений, но он печатается только до i == 1
и только до print("READERSPLITSPLIT", ReaderSplitSplit)
.
Нет сообщений об ошибках.