Skip to content

Instantly share code, notes, and snippets.

@geekman
Created September 16, 2018 16:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save geekman/358ad960827722c7f54bb5e27dfcaad4 to your computer and use it in GitHub Desktop.
Save geekman/358ad960827722c7f54bb5e27dfcaad4 to your computer and use it in GitHub Desktop.
renames a dated file into another date format
#!/usr/bin/env python
#
# renames files with date JAN_18 to "<prefix> 2018-01"
# darell tan 2018.09.14
#
from __future__ import print_function
import sys
import os
import re
MONTHS = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
FNAME_RE = re.compile(r'.*_([A-Z]{3})_(\d+)$', re.IGNORECASE)
PREFIX = 'prefix '
def main():
for f in sys.argv[1:]:
if not os.path.exists(f): continue
dirname = os.path.dirname(f)
name, ext = os.path.splitext(f)
m = FNAME_RE.match(name)
if not m: continue
month_name = m.group(1).lower()
year = m.group(2)
if month_name in MONTHS:
date_str = '20%s-%02d' % (year, MONTHS.index(month_name) + 1)
print('%s -> %s' % (f, new_fname))
new_fname = PREFIX + date_str + ext
os.rename(f, os.path.join(dirname, new_fname))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment