2016-08-21 6 views
0

特定の時間帯に作成された特定のフォルダ(たとえば、11時間目に作成されたすべてのファイル)にディレクトリのリストを取得しようとしています。私は11時間の間に作成されたファイルがある見ることができていますがディレクトリの正しいタイムスタンプを抽出できません

import time 
import os 
def get_information(directory): 
    file_dict={} 
    for i in os.listdir(directory): 
     a=os.stat(os.path.join(directory,i)) 
     b=time.gmtime(a.st_ctime) 
     newTime=b.tm_hour 
     if(file_dict.has_key(newTime)): 
      file_dict[newTime].append(i) 
     else: 
      file_dict[newTime]=[] 
      file_dict[newTime].append(i) 
    return file_dict 

が、上記のコードは、それを抽出することができません。以下は、私のコードです。

drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181071677 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181071621 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181071661 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181071625 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181071673 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181055504 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181055500 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181055508 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181055512 
drwxrwxr-x 2 oamops oamgroup  512 Aug 21 11:23 69-2181055516 

もう1つ注意すべきことは、0時間から5時間までのデータがあり、その後データが18時間から始まることです。

答えて

0

フィルタ機能を作成してみてください:

import os, datetime 

def check_time(path): 
    t = datetime.datetime.fromtimestamp(os.path.getmtime(path)) 
    return t.hour == 11 

それからちょうどあなたのディレクトリをフィルタリング:

filtered = filter(check_time, os.listdir(r'my/path')) 
+0

おかげで、与えられたコードで動作します! –

関連する問題