Skip to content

Instantly share code, notes, and snippets.

@gh640
Created March 31, 2017 13:44
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save gh640/db060734553eb408ac61b081129a7a17 to your computer and use it in GitHub Desktop.
特定のパス以下にあるサイズの大きなファイルを探すスクリプト
# coding: utf-8
"""特定のパス以下にあるサイズの大きなファイルを探すスクリプト
usage:
$ python __script__ [path] --size [size]
$ # カレントディレクトリ以下の 100 MB 以上のファイルを探す場合
$ python __script__ . --size 100
"""
import argparse
from pathlib import Path
def search_files(path, size_min):
"""指定されたパス以下の指定されたサイズ以上のファイル名を一覧表示する
"""
size_min_in_mb = size_min << 20
p = Path(path)
for file in p.iterdir():
if file.is_dir():
search_files(file, size_min)
elif file.is_file():
size = file.stat().st_size
if size >= size_min_in_mb:
print('{:.1f}MB\t{}'.format(size >> 20, file.resolve()))
def arg_validate_args():
"""対象のパスとサイズ( MB )をコマンドライン引数から取得する
"""
parser = argparse.ArgumentParser('Search large files.')
parser.add_argument('path', nargs='?', default='.', help='Path to search.')
parser.add_argument('-s', '--size', dest='size', type=int, required=True, help='Minimum file size (MB)')
args = parser.parse_args()
return args
if __name__ == '__main__':
args = arg_validate_args()
path = args.path
size = args.size
print('Searchinig files larger than or equals to {}MB in "{}"...'.format(size, path))
search_files(path, size)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment