Created
June 24, 2013 12:56
-
-
Save zupo/5849843 to your computer and use it in GitHub Desktop.
Split a folder with many files into subfolders with N files. Usage: python folder_splitter.py path/to/target/folder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
# @author: Peter Lamut | |
import argparse | |
import os | |
import shutil | |
N = 10 # the number of files in seach subfolder folder | |
def move_files(abs_dirname): | |
"""Move files into subdirectories.""" | |
files = [os.path.join(abs_dirname, f) for f in os.listdir(abs_dirname)] | |
i = 0 | |
curr_subdir = None | |
for f in files: | |
# create new subdir if necessary | |
if i % N == 0: | |
subdir_name = os.path.join(abs_dirname, '{0:03d}'.format(i / N + 1)) | |
os.mkdir(subdir_name) | |
curr_subdir = subdir_name | |
# move file to current dir | |
f_base = os.path.basename(f) | |
shutil.move(f, os.path.join(subdir_name, f_base)) | |
i += 1 | |
def parse_args(): | |
"""Parse command line arguments passed to script invocation.""" | |
parser = argparse.ArgumentParser( | |
description='Split files into multiple subfolders.') | |
parser.add_argument('src_dir', help='source directory') | |
return parser.parse_args() | |
def main(): | |
"""Module's main entry point (zopectl.command).""" | |
args = parse_args() | |
src_dir = args.src_dir | |
if not os.path.exists(src_dir): | |
raise Exception('Directory does not exist ({0}).'.format(src_dir)) | |
move_files(os.path.abspath(src_dir)) | |
if __name__ == '__main__': | |
main() |
running 'python split.py' gave me the following error usage: split.py [-h] src_dir split.py: error: the following arguments are required: src_dir
how do i fix this? please share exact code lines to fix this. i'm new to this.It tells u it needs the scr_dir as argument
- click on the RAW button at the top of this code window.
- copy, paste the code, and save the file as 'folder_splitter.py'
Usage:
3. Suppose
a. you want to reorganize a folder called MESSY
b. the path to MESSY is F:\MESSY
-
copy paste 'folder_splitter.py' to F:\
-
open command prompt
-
in command prompt,
a. move cursor to F:
b. type the following code
python folder_splitter.py F:\MESSY
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It tells u it needs the scr_dir as argument