如果有4个项目,我正在尝试打印[4]行;如果有4个以上的项目,我会尝试打印[4]和[5]行。
def onlinedoc(test):
for line in test:
lines = line.split()
if 'report' in lines:
if lines > [4]: #<---- this is where i need help
doc = lines[4] + lines[5]
else:
doc = lines[4]
return doc
if __name__ == '__main__':
test = open('test_documentation.txt', 'r')
print
onlinedoc(test)
我不确定我想要放在哪里,如果行&gt; [4]。我总是得到IndexError: list index out of range
。我已经仔细检查了,我想要的信息将在[4]或[5]中。如果我将这些行复制到单独的文本中,并且不使用if else而只执行
if 'report' in lines:
host = lines[4] + lines[5]
然后它起作用(在5行上)。
答案 0 :(得分:2)
使用len
:
def onlinedoc(test):
for line in test:
lines = line.split()
if 'report' in lines:
if len(lines) > 4:
doc = lines[4] + lines[5]
else:
doc = lines[4]
return doc
你应该阅读Python的内置函数documentation
答案 1 :(得分:1)
您可以使用len(行)或try / except
if 'report' in lines:
if len(lines) > 4:
doc = lines[4] + lines[5]
else:
doc = lines[4]
或尝试/除
if 'report' in lines:
try:
doc = lines[4] + lines[5]
except IndexError:
doc = lines[4]
这假设您总是至少有四个项目!
答案 2 :(得分:1)
你应该使用if len(lines)> 4