0

所以我想做的是把所有的行都变成小写,然后使用我的 part_list 来搜索 frys.txt 中匹配的所有单词并将其附加到项目中。我在创建一个遍历列表中每个单词的循环时遇到了很多麻烦,而实际上只是在 frys.txt 中找到了这些单词。如果可能的话,我什至试图找到双打。但我想要做的主要事情就是发现这个词存在,如果它存在,就将它附加到项目中。

任何建议都会很棒!

items = []
part_list = ['ccs', 'fcex', '8-12', '8-15', '8-15b', '80ha3']
f = open("C:/Users/SilenX/Desktop/python/frys.txt", "r+")
searchlines = f.readlines()
f.close()

for n, line in enumerate(searchlines):
    p = 0
    if part_list[p] in line.split():
        part_list[p] = part_list[p + 1]
        parts = searchlines[n]
        parts = parts.strip('\n')
        items.append(parts)

print items
4

1 回答 1

0

你正在用枚举做一些我认为没有必要的复杂事情,而且看起来你的内部“循环”确实没有做你想做的事情(因为你已经写了它,它不是环形)。试试这个:

part_list = ['ccs', 'fcex', '8-12', '8-15', '8-15b', '80ha3']
items = []
f = open("C:/Users/SilenX/Desktop/python/frys.txt", "r") # Open the file
for line in f:
    for token in line.lower().split(): # Loop over lowercase words in the line
        if token in part_list: # If it's one of the words you're looking for,
            items.append(token) # Append it to your list.
f.close()
print items

这将找到文件中出现在列表中的所有单词。它不会识别文件中附加到其他内容的单词,例如"ccs.""fcex8-12"。如果需要,您必须反转搜索的工作方式,以便计算每个单词part_list出现在该行中的次数,而不是计算该行中有多少个单词出现在 中part_list

于 2013-03-07T19:06:02.650 回答