我基本上都有字典中带有定义的单词。但是我只需要提取这个词。我做了什么使他们成为一个列表,只提取了第一个索引,但我仍然得到索引错误。
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()
答案 0 :(得分:2)
你“索引”并且可能得到“索引错误”的唯一地方是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 vvron(即print >>rpsnew, words1[0]
),这意味着与print
相同,除了输出是在雪佛龙之后放入(打开)的文件。此外,您不必复制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()