我基本上有字典里的单词和它们的定义。但是,我只需要提取单词。我所做的是创建一个列表,并且只提取了第一个索引,但是我仍然得到了一个索引错误。
rps=open('rootsPrefixesSuffixesnew.txt','r')
rpsnew=open('wordsonly.txt','w')
for words in rps:
words=words.strip()
words=words.split()
words1=list(words)
print words1[0]
rps.close()
rpsnew.close()
发布于 2015-10-17 14:50:31
您正在“索引”并且可能得到“索引错误”的唯一位置是print words1[0]
行(当然,您应该在问题中提供关于您在哪一行上遇到错误的信息-这是写在错误消息中的信息)。
如果文件中的行不包含任何单词,例如空行,则会出现此错误。请注意,如果最后一行以换行符结尾,则在文件的末尾有一个空行。当然,您还应该提供输入数据的示例。
为了解决这个问题,例如,我们可以检查words1
数组的长度,如果行中没有单词,则数组的长度(即单词数)将为零:
rps=open('rootsPrefixesSuffixesnew.txt','r')
rpsnew=open('wordsonly.txt','w')
for words in rps:
words=words.strip()
words=words.split()
words1=list(words)
if len(words1) == 0:
continue
print words1[0]
rps.close()
rpsnew.close()
当然,如果你想将单词放入wordsonly.txt
,你应该在打印时使用print chevron (即print >>rpsnew, words1[0]
),这意味着与print
相同,只是输出在V形之后被放入(打开的)文件中。此外,您不应该复制words
,因为它已经是一个列表,所以解决方案可能是:
rps=open('rootsPrefixesSuffixesnew.txt','r')
rpsnew=open('wordsonly.txt','w')
for words in rps:
words=words.strip()
words=words.split()
if len(words) == 0:
continue
print >>rpsnew, words[0]
rps.close()
rpsnew.close()
https://stackoverflow.com/questions/33183388
复制相似问题