forked from USTC-Resource/USTC-Course
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheckBigFile.py
38 lines (31 loc) · 1.05 KB
/
checkBigFile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import os
import shutil
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--path', help='path to check', default='.')
parser.add_argument(
'-s', '--size', help='max size of file to be removed',
default=2**20 * 100) # 100Mb
args = parser.parse_args()
PATH = args.path
SIZE = args.size
def checkBigFile(path, size):
big = '.bigFile'
if not os.path.exists(big):
os.mkdir(big)
gen = os.walk(os.path.abspath(path))
for path, dirs, files in gen:
li = path.strip(os.sep).split(os.sep)
if any([i[0] == '.' and i != '.' for i in li]): continue
for file in files:
filePath = os.path.join(path, file)
sz = os.path.getsize(filePath)
if sz > size:
print('[BIG]: {} is bigger than 100mb'.format(filePath))
try:
shutil.move(filePath, big)
except Exception as e:
print(e, path)
os.remove(filePath)
if __name__ == '__main__':
checkBigFile(PATH, SIZE)