我正在尝试处理我创建的歌曲和流派的txt文件,但不知道如何告诉python要查找的内容。 txt文件的格式如下:
- 7/28/2012
醇>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
如果代码按照我想要的方式工作,它会按行上的第一个数字对每一行进行分类,然后搜索某些字符串并添加这些字符串的计数。这可能吗?
答案 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