An Intelligent file organizer module which reads your file storing pattern & move the cluttered files accordingly!
Author: | Abhinav Anand |
---|
Contents
Let's accept, no one likes to organize files on a regular basis. Even if you do, you wouldn't want to do it everytime you download a new file.
Guess what! Filezen got you covered.
Given a folder of your cluttered/unorganized files, using Filezen
, you can achieve
the following
- If you've never maintained specific directories for your files. Then
Filezen's Basic Scanner
can create suitable folders and organize your file into them. - If you already have a pattern of directories for storing different files. Then
Filezen's Advanced Scanner
can read your file storing pattern and move your files accordingly.
- Advanced Scanning
- Basic Scanning
- Minimum dependencies ( just uses
Pathlib
if only you're working with Python 2.x ) - Easy to use
- Fast!
- Returns
JSON
objects - Support
- OS Support: Linux, Windows, Mac
- Language Support: Python 2.x, 3.x
1.3.1 Option 1: installing through pip (Recommended)
$ pip install Filezen
If you are behind a proxy
$ pip --proxy [username:password@]domain_name:port install -i https://pypi.org/project/Filezen/
Note: If you get command not found
then
$ sudo apt-get install python-pip
should fix that
$ git clone https://github.com/ab-anand/Filezen.git
$ cd Filezen/
$ pip install -r requirements.txt
$ python setup.py install
Simple Scanner
uses a predefined mapping of filetypes to folder.- Based on this mapping it creates directories and organizes files into them as shown in the above Fig.
- Using
Simple Scanner
>>> from filezen.simpleScanner import simplescanner as SSC
>>> scanner = SSC.SimpleScanner()
>>> input_directory = "/home/abhinav/Downloads"
>>> output_directory = "/home/abhinav/Documents"
>>> result = scanner.cleanDirectory(input_directory, outputPath=output_directory)
>>> print(result)
'{
"Moved": [
"FileA.pdf",
"FileB.txt",
"FileC.mp4",
"FileD.log",
"FileB.xyz"
],
"NotMoved": [
]
}'
- If a file with the same name is already present in the Output Directory then
Simple Scanner
would ignore the file and leave it to the user. - The filename which hasn't being because of the reason stated above would be returned in the
NotMoved
array of the result. - If no Output Directory is specified, then
Simple Scanner
would create folders in the Input Directory itself.
Advanced Scanner
maintains aheap
for each filetype/file-extension it encounters while scanning the Output Directory.- With the help of this heap it finally decides the directory where a particular filetype has mostly occurred and thus moving the all such files into that directory.
- As shown in the above image,
Advanced Scanner
scans the child directories also. - The level of child directories to scan is decided by
depth
parameter as shown in the example below. - By default,
depth = 5
- Using
Advanced Scanner
>>> from filezen.advancedScanner import advancedscanner as ASC
>>> scanner = ASC.AdvancedScanner()
>>> input_directory = "/home/abhinav/Downloads"
>>> output_directory = "/home/abhinav/Documents"
>>> depth = 3
>>> result = scanner.cleanDirectory(input_directory, outputPath=output_directory, depth=depth)
>>> print(result)
'{
"Moved": [
"FileA.pdf",
"FileB.txt",
"FileC.mp4",
"FileD.log",
"FileE.xyz"
],
"NotMoved": [
]
}'
- Similar to
Simple Scanner
, if a file with the same name is already present in the Output Directory thenAdvanced Scanner
would ignore the file and leave it to the user. - The filename which hasn't being because of the reason stated above would be returned in the
NotMoved
array of the result. - If no Output Directory is specified, then
Advanced Scanner
would read the folders in the Input Directory itself and move accordingly.
- KRETA - It is a command line application which uses
Filezen
to organize file.
For a detailed usage example, refer the documentation at Read the Docs
Please refer Contributing page for details
Please report the bugs at the issue tracker
Built with β₯ by Abhinav Anand under the MIT License Β©