38 lines
994 B
Python
38 lines
994 B
Python
import os
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
from typing import Tuple
|
|
|
|
|
|
def parse_name(name: str) -> Tuple[datetime, str]:
|
|
name = name[3:]
|
|
ext = name[name.rindex('.'):]
|
|
date = name[:8]
|
|
date = datetime.strptime(date, '%Y%m%d')
|
|
return date, ext
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# List files
|
|
files = list(os.listdir('./'))
|
|
files.sort()
|
|
|
|
# Filter files that starts with GMT
|
|
files = [f for f in files if f.startswith('GMT')]
|
|
|
|
# Videos only
|
|
vids = [f for f in files if f.endswith('mp4')]
|
|
for v in vids:
|
|
# Parse name
|
|
date, ext = parse_name(v)
|
|
date = date.strftime('%Y %m-%d')
|
|
os.rename(v, date + ext)
|
|
front = v[:28]
|
|
related = [f for f in files if f not in vids and f.startswith(front)]
|
|
for file in related:
|
|
ext = file[file.index('.'):]
|
|
Path(date).mkdir(parents=True, exist_ok=True)
|
|
os.rename(file, date + '/' + date + ext)
|
|
|
|
print(files)
|