-
-
Save zupo/5849843 to your computer and use it in GitHub Desktop.
# -*- 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
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
I posted this snippet years back and people still use it, can't believe it. 😄
In any case, if you are on MacOS, checkout my new thing: https://paretosecurity.app/