2011-11-17 31 views
2

我想查找包含使用Python的字符串的最後修改文件。我的目錄中有很多文件,所以比較日期並不吸引人。我正在尋找一種方法來通過修改的數據來搜索文件,直到我點擊包含我想要的字符串的文件。或者,如果有更好的方式來做到這一點,那將是非常好的。如何讀取包含特定字符串的最後修改文件?

+1

我不明白你的要求。如果你不打算比較日期,你將如何找到最新的修改文件? 「許多」文件有多少個? –

+0

因此,比較日期,你想比較每個文件的內容?這聽起來不像是提高了效率。 – JAL

回答

4

要搜索包含字符串search_string當前目錄下的最後修改的文件,你可以使用此代碼:

files = os.listdir(".") 
files.sort(key=os.path.getmtime, reverse=True) 
for name in files: 
    with open(name) as f: 
     if search_string in f.read(): 
      print name 
      break 

這將首先列出所有的文件,通過修改時間排序,最新的第一,然後遍歷文件列表以查看它們是否包含search_string

+1

爲什麼不使用'在排序的(os.listdir('。'),key = os.path.getmtime,reverse = True)中使用'它仍然可讀,縮短2行。 – rubik

+1

您正在做三件事 - 獲取文件列表,按mtime降序對它們進行排序,然後遍歷它們。在三個陳述中比在一個陳述中做三件事更具可讀性。 – AdamKG

相關問題