在python中打印一次的其他语句

时间:2014-12-03 07:03:32

标签: python

有没有办法打印一次“没有约会”?

我总是这样打印

no date
no date
24 - 8 - 1995
no date
no date
no date
no date
no date
03 - 12 - 2014
no date
....

我想要像这样打印

24 - 08 - 1995
03 - 12 - 2014
no date
15 - 10 - 1995
no date

这是代码

import os

for dirname, dirnames, filenames in os.walk('D:/Workspace'):
    for filename in filenames:
        if filename.endswith('.c'):
            for line in open(os.path.join(dirname, filename), "r").readlines():
                if line.find('date') != -1:
                    print line
                    break
                else:
                    print "no date"

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以放置​​else after the for loop

with open(os.path.join(dirname, filename), "r") as f:
    for line in f:
        if 'date' in line:
            print line
            break
    else:
        print "no date"

这样,如果循环正常执行,else部分将执行,即如果没有通过break退出。

此外,您可能希望使用with以便正确关闭文件,并直接迭代文件对象,而不是使用readlines将其整个内容不必要地加载到内存中,并使用in而不是find