[RUBY] Trier par date de modification du fichier

Trier les fichiers par date de modification.

Version Python

mtime.py


# coding: utf-8

import os
import time
import datetime

def sort_mtime(rootdir):
    xs = []
    for root, dir, files in os.walk(rootdir):
        for f in files:
            path = os.path.join(root, f)
            xs.append((os.path.getmtime(path), path))

    for mtime, path in sorted(xs):
        name = os.path.basename(path)
        t = datetime.datetime.fromtimestamp(mtime)
        print(t, name)

def main():
    sort_mtime('.')

if __name__ == '__main__':
    main()

C'est le résultat de l'exécution.

python


% python3 mtime.py
2015-01-17 13:52:15 mtime.py
2015-01-17 13:58:36 readme.md
2015-01-17 14:17:48 mtime.rb

Version rubis

mtime.rb


require 'find'

def sort_mtime(rootdir)
  xs = []
  Find.find(rootdir) { |f|
    xs << [File::mtime(f), f] if File::file?(f)
  }
  xs.sort.each { |mtime, f|
    puts "#{mtime} #{f}"
  }
end

if __FILE__ == $0
  sort_mtime('.')
end

C'est le résultat de l'exécution.

python


% ruby mtime.rb
2015-01-17 13:52:15 +0900 ./mtime.py
2015-01-17 13:58:36 +0900 ./readme.md
2015-01-17 14:17:48 +0900 ./mtime.rb

Recommended Posts

Trier par date de modification du fichier
Trier par date en python
Trier par valeur de valeur de type dict
Trier les noms de fichiers obtenus par Python glob dans l'ordre numérique
[Python] Tri itérable selon plusieurs conditions