簡體   English   中英

其他語句在python中打印一次

[英]Else statement to print once in 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"

謝謝你的幫助

您可以將else放在for循環之后

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"

這樣,如果循環正常執行,即如果未通過break退出,則else部分將執行。

另外,您可能還想使用with以便正確關閉文件,並直接迭代文件對象,而不是通過readlines不必要地將其整個內容加載到內存中,然后使用in代替find

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM