2013-03-07 94 views
0

因此,我想要做的是將所有行設爲小寫,然後使用我的part_list搜索frys.txt中匹配的所有單詞並追加它的項目。創建循環遍歷列表中的每個單詞並實際在frys.txt中查找單詞時遇到了很多麻煩。我甚至試圖找到雙打,如果這是可能的。但我希望能夠做的主要事情就是找到該單詞存在並將其附加到項目,如果它。lower()和使用列表搜索文件中的單詞

任何建議將是巨大的!

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 

回答

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中。

+0

哇!這太簡單了。非常感謝。 – joshuar500 2013-03-07 19:23:20