2016-07-27 13 views
1

Pythonを使用して2つの異なるディレクトリにある一連のファイルに対してアクションを実行するためのヘルプを探しています。 複数のディレクトリを検索して選択ファイルを読み込む

  • は全15個の最近変更されたファイルの行を読む(両方のディレクトリ内のファイルを比較する)15個の、最後に変更されたファイル

  • を探す

    1. 検索二つの異なるディレクトリ

      を:

      は私がしようとしていますライン別

    I ca globを使って1つのファイルディレクトリを読み込みます。しかし、複数のディレクトリを指定することはできません。私はこれを達成する別の方法がありますか?

    以下は、dir1ではなくdir2で最新の15個のファイルを取得する私のコードです。

    dir1 = glob.iglob("/dir1/data_log.*") 
    dir2 = glob.iglob("/dir2/message_log.*") 
    
    latest=heapq.nlargest(10, dir1, key=os.path.getmtime) 
    for fn in latest: 
        with open(fn) as f: 
         for line in f: 
          print(line) 
    
  • 答えて

    5

    私は、これはあなたが後にしているものですよく分からないが、あなたが代わりにglob.iglobglob.globを使用した場合にあなたのアイデアを好きではない場合、あなたは、

    dir1 = glob.glob("/dir1/data_log.*") 
    dir2 = glob.glob("/dir2/message_log.*") 
    
    latest=heapq.nlargest(10, dir1+dir2, key=os.path.getmtime) 
    

    、実際に行うことができます代わりに発電機(glob.iglob)のリスト(glob.glob)を使用して、あなたは、すごいとても簡単

    from itertools import chain 
    
    dir1 = glob.iglob("/dir1/data_log.*") 
    dir2 = glob.iglob("/dir2/message_log.*") 
    
    latest=heapq.nlargest(10, chain(dir1, dir2), key=os.path.getmtime) 
    
    +1

    を行うことができます。それは素晴らしい仕事でした。ありがとうございました。 – MBasith

    +0

    あなたを歓迎します:-) –

    関連する問題