【发布时间】:2020-05-26 12:03:31
【问题描述】:
以下 Python 代码在第 17 行给我一个索引错误,version = result[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')
版本 = 结果[标记:].splitlines()[0]
IndexError: 列表索引超出范围
不知道如何解决。有什么可以分享的快速课程吗?谢谢。
【问题讨论】:
-
prints 对于每个组件的输出是什么? (marker和result) -
result 不输出任何内容,而 marker 给出 7。我假设由于 result 为空,因此标记索引超出范围。但是,我不知道为什么结果为空。
-
@Abagnale 如果 result 没有打印任何内容,这意味着没有什么可以继续进行的,并且在 result 索引将引发错误。由于 result.find('Firefox') 返回 -1,因此标记也给出 7 作为输出。第一步检查您尝试阅读的文件、约定等
-
是的,tmp 是空的,但不确定为什么 firefox -v 没有向 tmp 传递任何东西。
标签: python python-3.x syntax index-error