45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
import os
|
|
import shutil
|
|
import time
|
|
|
|
EXCLUDE_FILE = 'DownloadSorter.py'
|
|
|
|
def create_dir(path, extensions):
|
|
for ext in extensions:
|
|
if not os.path.exists(os.path.join(path, ext)):
|
|
os.mkdir(os.path.join(path, ext))
|
|
|
|
|
|
def move_files(target_path):
|
|
for file in os.listdir(target_path):
|
|
if os.path.isfile(os.path.join(target_path, file)) and file != EXCLUDE_FILE:
|
|
file_extension = file.split('.')[-1]
|
|
shutil.move(os.path.join(target_path, file), os.path.join(target_path, file_extension, file))
|
|
|
|
|
|
def main():
|
|
while True:
|
|
# Get current directory and set it as the target path
|
|
cwd = os.getcwd()
|
|
target_path = os.path.join(cwd)
|
|
|
|
# Set up the number of files originally for automation
|
|
number_of_files = len(os.listdir(cwd))
|
|
time.sleep(20)
|
|
old_number = number_of_files # Possibly redundant
|
|
number_of_files = len(os.listdir(cwd))
|
|
|
|
# If new files detected, organize them
|
|
if number_of_files != old_number:
|
|
# Get all file extensions present in the directory
|
|
extensions = {item.split('.')[-1] for item in os.listdir(target_path)
|
|
if os.path.isfile(os.path.join(target_path, item))}
|
|
# print(extensions)
|
|
|
|
# Create a folder for extension types
|
|
create_dir(target_path, extensions)
|
|
|
|
# Move the files into the folder
|
|
move_files(target_path)
|
|
|
|
main() |