2014-04-23 59 views
0

我想處理一個由歌曲和流派創建的txt文件,但不知道如何告訴python要查找什麼。 TXT文件的格式像這樣:在txt文件的一行中搜索單詞

  1. 7/28/2012

1.1。 Lovin'You Fun-Country

[...]

1.100。打電話給我也許 - 青少年流行,舞曲流行

[] 2。 7/27/2013

2.1。冠嘻哈

(括號不是實際的文件)

我試着寫代碼來查找行的某些詞,但代碼查找該文件的每一行包含的任何字符串我將它傳遞(即使情況顯然不是這樣)。下面的代碼:

try: 
    infilehandle = open(afile, "r") 
    alllines = infilehandle.read().splitlines(False) 
    infilehandle.close() 
except: 
    alllines=None 
    print "Unable to read file {0}".format(afile) 
for aline in alllines: 
    if aline.find("Country"): 
     country_count += 1 
    if aline=="1. 7/28/2012" or "2. 7/27/2013" or "3. 4/27/2013" or "3. 4/27/2013": 
     continue 
    else: 
     continue 

如果代碼工作,我想它,它會通過上線的第一個數字歸類的每一行,然後搜索特定的字符串,並添加到那些字符串計數的方式。這可能嗎?

回答

0

查找不返回布爾值。它返回一個int。特別是,如果找不到字符串,則返回-1。

而作爲jonrsharpe提到,您也正在使用or也。

try: 
    infilehandle = open(afile, "r") 
    alllines = infilehandle.read().splitlines(False) 
    infilehandle.close() 
except: 
    alllines=None 
    print "Unable to read file {0}".format(afile) 
    exit(1) 
for aline in alllines: 
    if aline.find("Country") != -1: 
     country_count += 1 
    if aline=="1. 7/28/2012" or 
     aline=="2. 7/27/2013" or 
     aline=="3. 4/27/2013" or 
     aline=="3. 4/27/2013": 
     pass # I have no idea what you're trying to do here 
1

你應該寫:

if aline.find("Country") != -1: 

甚至更​​好的將是

if "Country" in aline: 

而且,你的第二個是否應改爲:

if aline=="foo" or aline=="bar" or aline=="zom": 
相關問題