Имейте индексную ошибку Python на функции разделенных линий - PullRequest
0 голосов
/ 11 февраля 2020

Следующий код Python дает мне ошибку индексации в строке 17, версия = результат [marker:]. Splitlines () [0]:

import os, math, sys

#OS_bit = (round(math.log(sys.maxint,2)+1)) # get the bit

os.system("sudo apt-get install python-pip && sudo apt-get install tor") # installing dependencies
os.system("pip install -U selenium")
os.system("pip install Pysocks")
os.system("pip install pyvirtualdisplay && apt-get install xvfb")

#print("\n \n {} \n \n".format(OS_bit))

os.system('firefox -v > tmp') 
result = open('tmp', 'r').read()
print (result)
marker = result.find('Firefox') + 8 
print (marker)
version = result[marker:].splitlines()[0] 
print (version)
a,b,c = version.split(".") 
os.remove('tmp') 

версия = результат [marker:] .splitlines () [0]

IndexError: список индексов выходит за пределы диапазона

Не знаете, как обращаться. Какие-нибудь быстрые уроки, которыми можно поделиться? Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Splitlines возвращает список, и вы получаете доступ к первому элементу в этом списке. Причина вашей ошибки в том, что string.splitlines() возвращает пустой список.

>>> string = ""
>>> string.splitlines()
[]
>>> string.splitlines()[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
0 голосов
/ 11 февраля 2020

Проблема связана с результатом, результат - это не список, а просто переменная присваивания, поэтому вы видите, что IndexError: list index out of range.

...