我有一个文本文件如下。
l[0]l[1]l[2]l[3]l[4]l[5]l[6]
-----------------------------------
1| abc is a book and cba too
2| xyz is a pencil and zyx too
3| def is a pen and fed too
4| aaa is
实际档案是:
abc is a book and cba too
xyz is a pencil and zyx too
def is a pen and fed too
aaa is
我正在使用以下代码对此文本文件执行操作:
import sys
fr = open("example.txt",'r')
for l in fr:
if(l[3] is "book" or l[3] is "pencil")
Then do something
if(l([3] is "pen")
Then do something
fr.close()
当我尝试执行此程序时,我收到的错误就像
Traceback(most recent call last):
File "abc.py" line 4 in <module>
if(l[3] is "book" or l[3] is "pencil"):
IndexError: list index error out of range
因为根据上一行中的上述文本文件(即第4行),l [3]
没有任何内容 l [0] l [1] l [2] l [3] l [4] l [5] l [6]
aaa是
这里第4行l [3]为空。 所以我的问题是当l [3]为空时如何跳过这一行? 我们可以像下面那样露营吗?
if(l[3] ==""):
continue
请有人帮我。
答案 0 :(得分:1)
您可以在for
循环开始时验证列表长度,如果没有第3个元素,则可以验证continue
:
if len(l)< 3:
continue
PS。当然,您必须先l.split()
行,否则您只能访问单个字符。
答案 1 :(得分:1)
您可以检查单词数组的长度。
但是请注意,当你直接在set a = Description.Create
a("micclass").value = "WebElement"
a("class").value = "sbqs_c"
a("html tag").value = "DIV"
set b = Browser("creationtime:=0").Page("title:=.*").ChildObjects(a)
MsgBox b.Count
For i = 0 To b.count-1 Step 1
If b(i).GetROProperty("text")="lic" Then
Browser("creationtime:=0").Page("title:=.*").WebElement("class:=sbqs_c","html tag:=DIV","index:=0").Click
End If
Next
上编制索引时,你就会在角色级别而不是你想要的单词级别。另外,我使用l
代替==
。
做这样的事情:
is
答案 2 :(得分:1)
当使用for l in fr
python时,不会返回一个数组,而是为每一行返回一个字符串,你必须在循环中处理它。使用l.strip().split()
将为您提供一个字符串数组,其中字符串将等于一个单词。
然后,is
用于比较对象类型,例如is this line a string ? or an int ?
。所以你不能在这里使用它。使用==
比较两个相同类型的对象。
编辑:一些示例代码
import sys
fr = open("example.txt",'r')
for l in fr:
word = l.strip().split()
if word[3] == "book" or word[3] == "pencil":
# Do something
elif word[3] == "pen":
# Do something
fr.close()
答案 3 :(得分:0)
您可以计算单词的大小:
with open("example.txt", 'r') as example_file:
for line in example_file:
words = line.strip().split()
if len(words) > 3: # line has more than three words
if words[3] in ['book', 'pencil']:
print("4th word is 'book' or 'pencil'")
elif words[3] == 'pen':
print("4th word is 'pen'")
输出:
4th word is 'book' or 'pencil'
4th word is 'book' or 'pencil'
4th word is 'pen'