Skip to content

Instantly share code, notes, and snippets.

@vadimii
Created September 20, 2012 16:47
Show Gist options
  • Save vadimii/3757009 to your computer and use it in GitHub Desktop.
Save vadimii/3757009 to your computer and use it in GitHub Desktop.
Group files by count
import os
import shutil
ROOT = u'../path/to/folder'
def group(by=100):
files = sorted(os.listdir(ROOT), key=unicode.lower)
groups = []
for i, f in enumerate(files):
if not i % by:
groups.append([])
groups[-1].append(f)
for g in groups:
gname = '(%s)-(%s)' % (g[0], g[-1])
for f in g:
src = os.path.join(ROOT, f)
dst = os.path.join(ROOT, gname, f)
shutil.move(src, dst)
def ungroup():
dirs = os.listdir(ROOT)
for d in dirs:
dpath = os.path.join(ROOT, d)
subdirs = os.listdir(dpath)
for s in subdirs:
src = os.path.join(ROOT, d, s)
dst = os.path.join(ROOT, s)
shutil.move(src, dst)
os.rmdir(dpath)
def main():
group(5)
ungroup()
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment