How to use Data Science Superpowers for Useless Things: Organizing Ancient Projects Pt 4

2 minute read

import os
directory_in_str = '/Volumes/EHD_5/____FIRST_TRANSFER_ALL/'
count = 0

diy_ext = {}
for subdir, dirs, files in os.walk(directory_in_str):
    for file in files:
        ext = file.split('.')[-1]
        if ext in diy_ext:
            diy_ext[ext] += 1
        else:
            diy_ext[ext] = 1

directory_in_str = '/Volumes/EHD_5/____FIRST_TRANSFER_ALL/'
destination = '/Volumes/EHD_5/'

for subdir, dirs, files in os.walk(directory_in_str):
    for file in files:
        filepath = subdir + os.sep + file
        ext = file.split('.')[-1]

        try:
            parent = new_dict[ext]
            newpath = destination + parent + '/' + file
            print(newpath)
#             shutil.move(filepath, newpath)
        except:
            print(file)
#             newpath = destination + '_____OTHER_UNKNOWN/' + file
#             shutil.move(filepath, newpath)

# CHECK TO MAKE SURE ALL ARE GONE
import os
directory_in_str = '/Volumes/EHD_5/____FIRST_TRANSFER_ALL/'
for subdir, dirs, files in os.walk(directory_in_str):
    for file in files:
        print(file)

extensions = {
    "3gp": "video/3gpp",
    "a": "application/octet-stream",
    "ai": "application/postscript",
    "aif": "audio/x-aiff",
    "aiff": "audio/x-aiff",
    "asc": "application/pgp-signature",
    "asf": "video/x-ms-asf",
    "asm": "text/x-asm",
    "asx": "video/x-ms-asf",
    "atom": "application/atom+xml",
    "au": "audio/basic",
    "avi": "video/x-msvideo",
    "bat": "application/x-msdownload",
    "bin": "application/octet-stream",
    "bmp": "image/bmp",
    "bz2": "application/x-bzip2",
    "c": "text/x-c",
    "cab": "application/vnd.ms-cab-compressed",
    "cc": "text/x-c",
    "chm": "application/vnd.ms-htmlhelp",
    "class": "application/octet-stream",
    "com": "application/x-msdownload",
    "conf": "text/plain",
    "cpp": "text/x-c",
    "crt": "application/x-x509-ca-cert",
    "css": "text/css",
    "csv": "text/csv",
    "cxx": "text/x-c",
    "deb": "application/x-debian-package",
    "der": "application/x-x509-ca-cert",
    "diff": "text/x-diff",
    "djv": "image/vnd.djvu",
    "djvu": "image/vnd.djvu",
    "dll": "application/x-msdownload",
    "dmg": "application/octet-stream",
    "doc": "application/msword",
    "dot": "application/msword",
    "dtd": "application/xml-dtd",
    "dvi": "application/x-dvi",
    "ear": "application/java-archive",
    "eml": "message/rfc822",
    "eps": "application/postscript",
    "exe": "application/x-msdownload",
    "f": "text/x-fortran",
    "f77": "text/x-fortran",
    "f90": "text/x-fortran",
    "flv": "video/x-flv",
    "for": "text/x-fortran",
    "gem": "application/octet-stream",
    "gemspec": "text/x-script.ruby",
    "gif": "image/gif",
    "gz": "application/x-gzip",
    "h": "text/x-c",
    "hh": "text/x-c",
    "htm": "text/html",
    "html": "text/html",
    "ico": "image/vnd.microsoft.icon",
    "ics": "text/calendar",
    "ifb": "text/calendar",
    "iso": "application/octet-stream",
    "jar": "application/java-archive",
    "java": "text/x-java-source",
    "jnlp": "application/x-java-jnlp-file",
    "jpeg": "image/jpeg",
    "jpg": "image/jpeg",
    "js": "application/javascript",
    "json": "application/json",
    "log": "text/plain",
    "m3u": "audio/x-mpegurl",
    "m4v": "video/mp4",
    "man": "text/troff",
    "mathml": "application/mathml+xml",
    "mbox": "application/mbox",
    "mdoc": "text/troff",
    "me": "text/troff",
    "mid": "audio/midi",
    "midi": "audio/midi",
    "mime": "message/rfc822",
    "mml": "application/mathml+xml",
    "mng": "video/x-mng",
    "mov": "video/quicktime",
    "mp3": "audio/mpeg",
    "mp4": "video/mp4",
    "mp4v": "video/mp4",
    "mpeg": "video/mpeg",
    "mpg": "video/mpeg",
    "ms": "text/troff",
    "msi": "application/x-msdownload",
    "odp": "application/vnd.oasis.opendocument.presentation",
    "ods": "application/vnd.oasis.opendocument.spreadsheet",
    "odt": "application/vnd.oasis.opendocument.text",
    "ogg": "application/ogg",
    "p": "text/x-pascal",
    "pas": "text/x-pascal",
    "pbm": "image/x-portable-bitmap",
    "pdf": "application/pdf",
    "pem": "application/x-x509-ca-cert",
    "pgm": "image/x-portable-graymap",
    "pgp": "application/pgp-encrypted",
    "pkg": "application/octet-stream",
    "pl": "text/x-script.perl",
    "pm": "text/x-script.perl-module",
    "png": "image/png",
    "pnm": "image/x-portable-anymap",
    "ppm": "image/x-portable-pixmap",
    "pps": "application/vnd.ms-powerpoint",
    "ppt": "application/vnd.ms-powerpoint",
    "ps": "application/postscript",
    "psd": "image/vnd.adobe.photoshop",
    "py": "text/x-script.python",
    "qt": "video/quicktime",
    "ra": "audio/x-pn-realaudio",
    "rake": "text/x-script.ruby",
    "ram": "audio/x-pn-realaudio",
    "rar": "application/x-rar-compressed",
    "rb": "text/x-script.ruby",
    "rdf": "application/rdf+xml",
    "roff": "text/troff",
    "rpm": "application/x-redhat-package-manager",
    "rss": "application/rss+xml",
    "rtf": "application/rtf",
    "ru": "text/x-script.ruby",
    "s": "text/x-asm",
    "sgm": "text/sgml",
    "sgml": "text/sgml",
    "sh": "application/x-sh",
    "sig": "application/pgp-signature",
    "snd": "audio/basic",
    "so": "application/octet-stream",
    "svg": "image/svg+xml",
    "svgz": "image/svg+xml",
    "swf": "application/x-shockwave-flash",
    "t": "text/troff",
    "tar": "application/x-tar",
    "tbz": "application/x-bzip-compressed-tar",
    "tcl": "application/x-tcl",
    "tei": "application/tei+xml",
    "tex": "application/x-tex",
    "texi": "application/x-texinfo",
    "texinfo": "application/x-texinfo",
    "text": "text/plain",
    "tif": "image/tiff",
    "tiff": "image/tiff",
    "torrent": "application/x-bittorrent",
    "tr": "text/troff",
    "txt": "text/plain",
    "vcf": "text/x-vcard",
    "vcs": "text/x-vcalendar",
    "vrml": "model/vrml",
    "war": "application/java-archive",
    "wav": "audio/x-wav",
    "wma": "audio/x-ms-wma",
    "wmv": "video/x-ms-wmv",
    "wmx": "video/x-ms-wmx",
    "wrl": "model/vrml",
    "wsdl": "application/wsdl+xml",
    "xbm": "image/x-xbitmap",
    "xhtml": "application/xhtml+xml",
    "xls": "application/vnd.ms-excel",
    "xml": "application/xml",
    "xpm": "image/x-xpixmap",
    "xsl": "application/xml",
    "xslt": "application/xslt+xml",
    "yaml": "text/yaml",
    "yml": "text/yaml",
    "zip": "application/zip"
};


CREATE YOUR OWN DICT WITH A SHORTHAND

new_dict = {}
for (k,v) in extensions.items():
    print(k, v)
    new_val=input('parent')
    new_dict[k] = new_val

CONVERT THAT SHORTHAND

new_dict = input_dict2
for (k,v) in new_dict.items():
    if v == 'doc' or v == 'docs' or v == 'dof':
        new_dict[k] = '_____DOCUMENTS'
    if v == 'dev':
        new_dict[k] = '_____DEVELOPER'
    if v == 'no' or v == 'unknown' or v == 'app':
        new_dict[k] = '_____OTHER_UNKNOWN'
    if v == 'zip':
        new_dict[k] = '_____ZIP'
    if v == 'image' or v == 'photos' or v == 'photo':
        new_dict[k] = '_____PHOTOS'
    if v == 'media':
        new_dict[k] = '_____MEDIA'
    if v == 'photoshop':
        new_dict[k] = '_____PHOTOSHOP'