在txt文件的行中搜索单词

时间:2014-04-23 20:26:16

标签: python

我正在尝试处理我创建的歌曲和流派的txt文件,但不知道如何告诉python要查找的内容。 txt文件的格式如下:

  
      
  1. 7/28/2012
  2.         

    1.1。 Lovin'你是有趣的国家

         

    [...]

         

    1.100。叫我也许 - 青少年流行音乐,舞蹈流行音乐

         

    [] 2。 2013年7月27日

         

    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

如果代码按照我想要的方式工作,它会按行上的第一个数字对每一行进行分类,然后搜索某些字符串并添加这些字符串的计数。这可能吗?

2 个答案:

答案 0 :(得分:1)

你应该写:

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

甚至更好

  if "Country" in aline:

另外,你的第二个应该读:

  if aline=="foo" or aline=="bar" or aline=="zom":

答案 1 :(得分: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