organize - The file management automation tool

Overview

organize logo

tests Documentation Status License PyPI Version


organize - The file management automation tool
Full documentation at Read the docs

About

Your desktop is a mess? You cannot find anything in your downloads and documents? Sorting and renaming all these files by hand is too tedious? Time to automate it once and benefit from it forever.

organize is a command line, open-source alternative to apps like Hazel (macOS) or File Juggler (Windows).

Getting started

Installation

Python 3.6+ is needed. Install it via your package manager or from python.org.

Installation is done via pip. Note that the package name is organize-tool:

pip3 install -U organize-tool

If you want the text extraction capabilities, install with textract like this:

pip3 install -U "organize-tool[textract]"

This command can also be used to update to the newest version. Now you can run organize --help to check if the installation was successful.

Creating your first rule

In your shell, run organize config to edit the configuration:

rules:
    - folders: ~/Downloads
      subfolders: true
      filters:
          - extension: pdf
      actions:
          - echo: "Found PDF!"

If you have problems editing the configuration you can run organize config --open-folder to reveal the configuration folder in your file manager. You can then edit the config.yaml in your favourite editor.

Alternatively you can run organize config --path to see the full path to your config.yaml)

Save your config file and run organize run.

You will see a list of all .pdf files you have in your downloads folder (+ subfolders). For now we only show the text Found PDF! for each file, but this will change soon... (If it shows Nothing to do you simply don't have any pdfs in your downloads folder).

Run organize config again and add a copy-action to your rule:

actions:
    - echo: "Found PDF!"
    - move: ~/Documents/PDFs/

Now run organize sim to see what would happen without touching your files. You will see that your pdf-files would be moved over to your Documents/PDFs folder.

Congratulations, you just automated your first task. You can now run organize run whenever you like and all your pdfs are a bit more organized. It's that easy.

There is so much more. You want to rename / copy files, run custom shell- or python scripts, match filenames with regular expressions or use placeholder variables? organize has you covered. Have a look at the advanced usage example below!

Example rules

Here are some examples of simple organization and cleanup rules. Modify to your needs!

Move all invoices, orders or purchase documents into your documents folder:

rules:
    # sort my invoices and receipts
    - folders: ~/Downloads
      subfolders: true
      filters:
          - extension: pdf
          - filename:
                contains:
                    - Invoice
                    - Order
                    - Purchase
                case_sensitive: false
      actions:
          - move: ~/Documents/Shopping/

Move incomplete downloads older than 30 days into the trash:

rules:
    # move incomplete downloads older > 30 days into the trash
    - folders: ~/Downloads
      filters:
          - extension:
                - download
                - crdownload
                - part
          - lastmodified:
                days: 30
                mode: older
      actions:
          - trash

Delete empty files from downloads and desktop:

rules:
    # delete empty files from downloads and desktop
    - folders:
          - ~/Downloads
          - ~/Desktop
      filters:
          - filesize: 0
      actions:
          - trash

Move screenshots into a "Screenshots" folder on your desktop:

rules:
    # move screenshots into "Screenshots" folder
    - folders: ~/Desktop
      filters:
          - filename:
                startswith: "Screen Shot"
      actions:
          - move: ~/Desktop/Screenshots/

Organize your font downloads:

rules:
    # organize your font files but keep the folder structure:
    #   "~/Downloads/favourites/helvetica/helvetica-bold.ttf"
    #     is moved to
    #   "~/Documents/FONTS/favourites/helvetica/helvetica-bold.ttf"
    - folders: ~/Downloads/**/*.ttf
      actions:
          - Move: "~/Documents/FONTS/{relative_path}"

You'll find many more examples in the full documentation.

Advanced usage

This example shows some advanced features like placeholder variables, pluggable actions, recursion through subfolders and glob syntax:

rules:
    - folders: ~/Documents/**/*
      filters:
          - extension:
                - pdf
                - docx
          - created
      actions:
          - move: "~/Documents/{extension.upper}/{created.year}{created.month:02}/"
          - shell: 'open "{path}"'

Given we have two files in our ~/Documents folder (or any of its subfolders) named script.docx from january 2018 and demo.pdf from december 2016 this will happen:

  • script.docx will be moved to ~/Documents/DOCX/2018-01/script.docx
  • demo.pdf will be moved to ~/Documents/PDF/2016-12/demo.pdf
  • The files will be opened (open command in macOS) from their new location.
  • Note the format syntax for {created.month} to make sure the month is prepended with a zero.

Command line interface

The file management automation tool.

Usage:
    organize sim [--config-file=]
    organize run [--config-file=]
    organize config [--open-folder | --path | --debug] [--config-file=]
    organize list
    organize --help
    organize --version

Arguments:
    sim             Simulate a run. Does not touch your files.
    run             Organizes your files according to your rules.
    config          Open the configuration file in $EDITOR.
    list            List available filters and actions.
    --version       Show program version and exit.
    -h, --help      Show this screen and exit.

Options:
    -o, --open-folder  Open the folder containing the configuration files.
    -p, --path         Show the path to the configuration file.
    -d, --debug        Debug your configuration file.

Full documentation: https://organize.readthedocs.io
Issues
  • How to run the program

    How to run the program

    Hi,

    I am a newbie in all things technical. I have installed the package doing pip3 install -U organize-tool. How do I run it? I have written "organize" on the Terminal, but this does not work. Thanks in advance!

    opened by AtomicNess123 16
  • macOS tags

    macOS tags

    I love this project and use it quite a lot.

    I would be great if organize could also support tagging under MacOS. Library for setting tags seems to be available https://pypi.org/project/macos-tags/

    feature request 
    opened by Marty56 15
  • Shortcuts not registering?

    Shortcuts not registering?

    This is an odd one because it seems to be inconsistent. I'm pointing the application to my desktop and asking it to move new .lnk files (shortcuts) somewhere else in my home directory... While it has worked before it often ignores certain shortcuts as if they don't even exist.

    Edit It managed to recognize the "ImageMagick Display" applications shortcut when updating it but I see no discernible difference between "it" and other shortcuts that sit on my desktop.

    opened by daephx 10
  • "macostags" causes error on M1 Mac

    The "macostags" causes the following error on M1 Mac

    Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/cli.py", line 77, in main execute_rules(config.rules, simulate=args["sim"]) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/config.py", line 161, in rules rule_actions = list(self.instantiate_actions(rule_item)) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/config.py", line 139, in instantiate_actions action_class = self._get_action_class_by_name(name) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/config.py", line 87, in _get_action_class_by_name return self.action_by_name[self.sanitize_key(name)] KeyError: 'macostags' 2021-04-27 20:18:11,822 - organize - ERROR - 'macostags' Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/cli.py", line 77, in main execute_rules(config.rules, simulate=args["sim"]) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/config.py", line 161, in rules rule_actions = list(self.instantiate_actions(rule_item)) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/config.py", line 139, in instantiate_actions action_class = self._get_action_class_by_name(name) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/organize/config.py", line 87, in _get_action_class_by_name return self.action_by_name[self.sanitize_key(name)] KeyError: 'macostags'

    opened by Marty56 9
  • Access to environment variables?

    Access to environment variables?

    Is it possible to access and use environment variables?

    opened by seebi 9
  • filecontent filter stops working under Big Sur

    filecontent filter stops working under Big Sur

    I have noticed the following problems installing organize under Big Sur

    1. "pip3 install -U organize-tool[textract]" is not working
    pip3 install -U organize-tool[textract]
    zsh: no matches found: organize-tool[textract]
    
    1. "pip3 install -U organize-tool" is running but results in a couple of warnings.
    WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
    distutils: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN
    sysconfig: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
    WARNING: Additional context:
    user = False
    home = None
    root = None
    prefix = None
    Requirement already satisfied: organize-tool in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (1.10.1)
    Requirement already satisfied: exifread<3.0,>=2.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (2.3.2)
    Requirement already satisfied: docopt<0.7.0,>=0.6.2 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (0.6.2)
    Requirement already satisfied: colorama<0.5.0,>=0.4.4 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (0.4.4)
    Requirement already satisfied: pendulum<3.0.0,>=2.0.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (2.1.2)
    Requirement already satisfied: macos-tags<2.0.0,>=1.5.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (1.5.1)
    Requirement already satisfied: appdirs<2.0.0,>=1.4.4 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (1.4.4)
    Requirement already satisfied: simplematch<2.0,>=1.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (1.3)
    Requirement already satisfied: Send2Trash<2.0.0,>=1.5.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (1.5.0)
    Requirement already satisfied: PyYAML<6.0.0,>=5.4.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from organize-tool) (5.4.1)
    Requirement already satisfied: mdfind-wrapper<0.2.0,>=0.1.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from macos-tags<2.0.0,>=1.5.1->organize-tool) (0.1.4)
    Requirement already satisfied: xattr<0.10.0,>=0.9.7 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from macos-tags<2.0.0,>=1.5.1->organize-tool) (0.9.7)
    Requirement already satisfied: pytzdata>=2020.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pendulum<3.0.0,>=2.0.5->organize-tool) (2020.1)
    Requirement already satisfied: python-dateutil<3.0,>=2.6 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pendulum<3.0.0,>=2.0.5->organize-tool) (2.8.1)
    Requirement already satisfied: six>=1.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from python-dateutil<3.0,>=2.6->pendulum<3.0.0,>=2.0.5->organize-tool) (1.15.0)
    Requirement already satisfied: cffi>=1.0.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from xattr<0.10.0,>=0.9.7->macos-tags<2.0.0,>=1.5.1->organize-tool) (1.14.5)
    Requirement already satisfied: pycparser in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from cffi>=1.0.0->xattr<0.10.0,>=0.9.7->macos-tags<2.0.0,>=1.5.1->organize-tool) (2.20)
    WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
    distutils: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN
    sysconfig: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
    WARNING: Additional context:
    user = False
    home = None
    root = None
    prefix = None
    
    1. "filecontent" Filter is not working. Probably related to missing "textract" module
        - (FileContent) ERROR! textract is not installed. Install with pip install organize-tool[textract]
        - (FileContent) ERROR! textract is not installed. Install with pip install organize-tool[textract]
        - (FileContent) ERROR! textract is not installed. Install with pip install organize-tool[textract]
    
    1. I also noted pretty different behaviour running the installation under Mojave.

    a. no warnings b. the "textract" module is working although I have not used the "pip3 install -U organize-tool[textract]" Command c. I cannot start Organizer by e.g. "organizer some command" but always have to write "python3 -m organize some command"

    opened by Marty56 7
  • How to trim a string

    How to trim a string

    First of all, thank you very much for "organize". I have running this in a container on a Synology and in combination with synOCR it helps a lot in getting all the scanned pdfs to the my document structure.

    Actually i try to parse all my pdfs and check them with the regex filter. Due to the fact, that the OCR sometimes produces some lines in between i have to look for them with \s*

      filters:
          - extension: pdf
          - filecontent: (?P<wwkcode>\d{2}\s*\d{3}\s*\d{3})
    
    

    Then i want to use the result from regex within the filename, so i use:

        actions:
          - echo: "Found Insurance PDF"
          - rename: "{created.year}-{created.month:02}-{created.day:02}_WWK_{filecontent.wwkcode}.pdf"
    
    

    Works like a charme, but when the result is inserted into the filename, also the white lines are there (of course). I tried to trim the string using python, but i failed. Is there an easy way, to get rid of the the unwanted spaces?

    I have tried it with:

          - python: |
            resulttext = filecontent.wwkcode
            return {"texting": resulttext.replace(" ", "")}
    
       actions:
          - echo: "Found WWK"
          - rename: "{created.year}-{created.month:02}-{created.day:02}_WWK_{filecontent.wwkcode}_{python.texting}.pdf"
    

    But then it failed and the log gives me the following errors:

    ERROR: while scanning a simple key in "", line 12, column 9: resulttext = filecontent.wwkcode ^ could not find expected ':' in "", line 13, column 9: return {"texting": resulttext.re ... ^ Try 'organize config --debug' for easier debugging. Full traceback at: /root/.cache/organize/log/organize.log

    I really appreciate your help. Thanks in advance.

    opened by gvg-h-de 6
  • Preserve path option

    Preserve path option

    It would be very helpful to have an option to replicate the file path from root of the source folder to the destination folder on a move or copy action. I subscribe to a system that downloads statements from over a dozen companies that I do business with and files them into a sub-folder for each account. I'd like to have an automated process run periodically to file those into a folder of the same name, but under the current year so that, at year's end, all the documents for that particular year are filed together

    For instance, given the following input file: /source-folder/my-bank-name/monthly-statement-july.pdf

    move to the following destination file: /destination-folder/2018/my-bank-name/monthly-statement-july.pdf

    One idea might be to have a rule similar to the following:

    rules:
      - folders: '/source-folder'
        subfolders: true
        filters:
          - Extension:
              - pdf
              - docx
          - LastModified
        actions:
          - Move: '/destination-folder/{lastmodified.year}/'
              - preservepath: true
    

    Another might be even simpler:

    rules:
      - folders: '/source-folder'
        subfolders: true
        filters:
          - Extension:
              - pdf
              - docx
          - LastModified
        actions:
          - Move: '/destination-folder/{lastmodified.year}/{path}/'
    
    opened by dskaggs 6
  • F25 rule targets folders

    F25 rule targets folders

    https://github.com/tfeldmann/organize/issues/25

    opened by mope1 6
  • Encoding Windows

    Encoding Windows

    Hey,

    I'm trying to use organize with Windows 10/Python 3.7.3 and have a problem with the encoding (ü/ö/ä).

    Example:

    rules:
      # move Übungen to 'Übungen' folder
      - folders: 'D:\test'
        subfolders: true
        filters:
          - Extension:
            - txt
          - Filename:
              contains : übung
              case_sensitive: false
        actions:
          - Move: 'D:\test\übungen\'
    

    The tools is not finding the "übung.txt".

    With the following config it finds the file but the move folder is wrong.

    rules:
      # move Übungen to 'Übungen' folder
      - folders: 'D:\test'
        subfolders: true
        filters:
          - Extension:
            - txt
          - Filename:
              contains : bung
              case_sensitive: false
        actions:
          - Move: 'D:\test\übungen\'
    

    organize run gives the following output:

    PS C:\Users\jn> organize run
    Folder D:\test\:
      File übungen.txt:
        - [Move] Move to "D:\test\übungen\übungen.txt"
    

    The result is the file in a new folder named "übungen"

    Maybe some ideas where to look? The file "übung.txt" is displayed correct. Thanks

    Cheers, Jan

    bug 
    opened by random623 5
  • On Monterey, getting

    On Monterey, getting "[Errno 1] Operation not permitted"

    My config file tries to move files from iCloud to Google Drive, but after upgrading to Monterey I'm getting a "ERROR! [Errno 1] Operation not permitted: ..." error.

    Is this some sort of security related setting that I need to change?

    opened by andyylin 0
  • Default rule when no other rule is matching

    Default rule when no other rule is matching

    Is there a chance to set a default rule in case no other rule is executed?

    I've a set of rules described in the config and then a bunch of files, where these rules have to be used for. I run this as a cron task periodically on a dedicated inbox folder and with the rules the files are moved to several destinations. My problem is that all files, where no rule matched, stay in the inbox folder and then in the next cron task run they were processed again and again.

    I would be pleased, if there is an option to set a default/fallback rule, in case all other rules cannot be matched. Then, my unprocessed file can be moved to a folder "no_rules_available" and I can check, whether I have to create new rules for.

    Currently I added a stupid rule at the end of the config file, just for all files, which is then always processed for this movement. But then in all my other rules I get in the logs the message: " - [Move] ERROR! [Errno 2] No such file or directory: '/source/xyz.pdf' "

    I think the reason is that than more than one rule is matching and both are tried to execute. But they cannot moved twice, because the first, real rule has moved the file to the correct destination. This workaround is just my last option, but I don't know, whether the rules are processed in the right order and my "fallback" rule is processed first. Therefore I wanted to have this option explicitely, if possible.

    Thanks and kind regards, Ralf

    opened by Rayn2k 0
  • Random character is being added the path in my config

    Random character is being added the path in my config

    Im running 1.10.1 and in my config I have a rule to move to /home/joey/Downloads/veryfi_triage but if I run organize sim it shows the path as /home/joey/Downloads/veryfi_triage 2. If I run organize run as expected it will create the path with the trailing 2

    ~ cat .config/organize/config.yaml                                                                   
    rules:
    # email amazon invoice
        - folders: ~/Downloads
          subfolders: false
          filters:
              - extension: pdf
              - filename:
                    startswith:
                        - 'Amazon.com - Order'
                    case_sensitive: true
    
          actions:
              - move: /home/joey/Downloads/veryfi_triage
              - Shell: 'killall organize'
    ~  organize sim                                                                                        ✔ 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SIMULATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Folder /home/joey/Downloads:
      File Amazon.com - Order 112-4490967-8707404.pdf:
        - [Move] Move to "/home/joey/Downloads/veryfi_triage 2"
        - [Shell] $ killall organize
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SIMULATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~  organize config --debug                                                                             ✔ 
    /home/joey/.config/organize/config.yaml
    Your configuration as seen by the parser:
    'rules':
    - 'actions':
      - 'move': '/home/joey/Downloads/veryfi_triage'
      - 'Shell': 'killall organize'
      'filters':
      - 'extension': 'pdf'
      - 'filename':
          'case_sensitive': !!bool 'true'
          'startswith':
          - 'Amazon.com - Order'
      'folders': '~/Downloads'
      'subfolders': !!bool 'false'
    
    Config file syntax seems fine!
    No config problems found.
    
    opened by joeySeal 1
  • Add support for operations on folders

    Add support for operations on folders

    I love this tool, thank you so much for working on it. I'm wondering if there are any plans in the future to make it easier to do actions on folders in the set directory instead of just files?

    opened by AcharyaS97 0
  • filecontent: RegEx expression to find a string with multiple words not working

    filecontent: RegEx expression to find a string with multiple words not working

    Hi all,

    I dont know if it is a bug or if I am using it wrong. I am new to regular expressions but did a lot of research and did some excercises on https://regex101.com/

    I have a searchable pdf file (created with synoOCR) and I am searching for the String "Beispiel Lebensversicherung AG"

    my config.yaml looks like this:

    rules:
      - folders: /Documents/Scanner/action
        subfolders: true
        filters:
        - extension: pdf
        actions:
            - echo: "Found PDF!"
        
        #Beispiel Lebensversicherung
      - folders: /Documents/Scanner/action
        filters:
        - extension: pdf
        - filecontent:
          - \bBeispiel\s\bLebensversicherung\s\bAG
        actions:
        - copy: 'custom folder'
    

    Unfortunately the rule is not working. What I found out that is working when I only search for one word of the string. For example:

        - filecontent:
          - \bLebensversicherung
    

    is working ; but when combining it with the two other words the rule is not executed. I tested the expression on regex101 --> https://regex101.com/r/7bFIu8/1

    Do I have to change the filecontent line in the config file? I also concern about: How to add the regex options (flags) in the yaml file?

    opened by dbffm 1
  • Feature request: Get the file size in units other than bytes

    Feature request: Get the file size in units other than bytes

    Currently, Organize only provides the placeholder variable {filesize.bytes} which returns the file size in bytes.

    I want to be able to get the file size in other units, such as megabytes and gigabytes.

    opened by OmarNamis 0
  • Add filter for Date Added

    Add filter for Date Added

    Files that have just been downloaded may have a Created or Modified date that is much older. Allow using the Date Added field to filter based on when a file was added to the folder.

    opened by dunxd 2
  • further examples using regex in the documentation

    further examples using regex in the documentation

    I added some examples which helped me create and maintain my rule files.

    opened by Marty56 0
  • Feature: .">

    Feature: "filecontent does not contain.

    I realized that various "- filecontent" statements in the yaml file perform like and "AND" condition. I would like to have a "- filecontent" filter that performs filter "does not contain a certain string" . Is this possible?

    opened by Marty56 1
  • Feature: Use placeholder variables in filename filter

    Feature: Use placeholder variables in filename filter

    It is not possible to filter filenames using placeholder variables.

    feature request 
    opened by Marty56 2
Releases(v1.10.1)
  • v1.10.1(Apr 21, 2021)

  • v1.10.0(Apr 20, 2021)

    • Add filter mimetype
    • Add action macos_tags
    • Support simplematch syntax in filename-filter.
    • Updated dependencies
    • Because installing textract is quite hard on some platforms it is now an optional dependency. Install it with pip install organize-tool[textract]
    • This version needs python 3.6 minimum. Some dependencies that were simply backports (pathlib2, typing) are removed.
    • Add timezones in created and last_modified filters (Thank you, @win0err!)
    Source code(tar.gz)
    Source code(zip)
  • v1.9.1(Nov 10, 2020)

  • v1.9(Jun 12, 2020)

  • v1.8.2(Apr 3, 2020)

  • v1.8.1(Mar 28, 2020)

    • Flatten filter and action lists to allow enhanced config file configuration (Thanks to @rawdamedia!)
    • Add support for multiline content filters (Thanks to @zor-el!)
    Source code(tar.gz)
    Source code(zip)
  • v1.8.0(Mar 4, 2020)

    • Added action Delete.
    • Added filter FileContent.
    • Python 3.4 is officially deprecated and no longer supported.
    • --config-file command line option now supports ~ for user folder and expansion of environment variables
    • Added years, months, weeks and seconds parameter to filter created and lastmodified
    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Nov 26, 2019)

  • v1.6.2(Nov 22, 2019)

  • v1.6.1(Oct 25, 2019)

  • v1.6(Aug 19, 2019)

    • Added filter: Python
    • Added filter: FileSize
    • The organize module can now be run directly: python3 -m organize
    • Various code simplifications and speedups.
    • Fixes an issue with globstring file exclusion.
    • Remove clint dependency as it is no longer maintained.
    • Added various integration tests
    • The "~~ SIMULATION ~~"-banner now takes up the whole terminal width
    Source code(tar.gz)
    Source code(zip)
  • v1.5.3(Aug 1, 2019)

  • v1.5.2(Jul 29, 2019)

    • Environment variables in folder pathes are now expanded (syntax $name or ${name} and additionally %name% on windows). For example this allows the usage of e.g. %public/Desktop% in windows.
    Source code(tar.gz)
    Source code(zip)
  • v1.4.5(Jul 3, 2019)

  • v1.3(Sep 21, 2018)

  • v1.4(Sep 21, 2018)

    • Fixes a bug where glob wildcards are not detected correctly
    • Adds support for excluding folders and files via glob syntax.
    • Makes sure that files are only handled once per rule.
    Source code(tar.gz)
    Source code(zip)
A python script to convert an ucompressed Gnucash XML file to a text file for Ledger and hledger.

README 1 gnucash2ledger gnucash2ledger is a Python script based on the Github Gist by nonducor (nonducor/gcash2ledger.py). This Python script will tak

Thomas Freeman 1 Nov 16, 2021
This is a file deletion program that asks you for an extension of a file (.mp3, .pdf, .docx, etc.) to delete all of the files in a dir that have that extension.

FileBulk This is a file deletion program that asks you for an extension of a file (.mp3, .pdf, .docx, etc.) to delete all of the files in a dir that h

Enoc Mena 1 Nov 8, 2021
Python package to read and display segregated file names present in a directory based on type of the file

tpyfilestructure Python package to read and display segregated file names present in a directory based on type of the file. Installation You can insta

Tharun Kumar T 2 Nov 28, 2021
This is a junk file creator tool which creates junk files in Internal Storage

This is a junk file creator tool which creates junk files in Internal Storage

KiLL3R_xRO 3 Jun 20, 2021
A simple file sharing tool written in python

Share it A simple file sharing tool written in python Installation If you are using Windows os you can directly Run .exe file --> download If you are

Sachit Yadav 4 Nov 23, 2021
Object-oriented file system path manipulation

path (aka path pie, formerly path.py) implements path objects as first-class entities, allowing common operations on files to be invoked on those path

Jason R. Coombs 971 Nov 21, 2021
An object-oriented approach to Python file/directory operations.

Unipath An object-oriented approach to file/directory operations Version: 1.1 Home page: https://github.com/mikeorr/Unipath Docs: https://github.com/m

Mike Orr 497 Nov 18, 2021
File support for asyncio

aiofiles: file support for asyncio aiofiles is an Apache2 licensed library, written in Python, for handling local disk files in asyncio applications.

Tin Tvrtković 1.7k Dec 1, 2021
Object-oriented file system path manipulation

path (aka path pie, formerly path.py) implements path objects as first-class entities, allowing common operations on files to be invoked on those path

Jason R. Coombs 971 Nov 21, 2021
A platform independent file lock for Python

py-filelock This package contains a single module, which implements a platform independent file lock in Python, which provides a simple way of inter-p

Benedikt Schmitt 364 Nov 29, 2021
Simple Python File Manager

This script lets you automatically relocate files based on their extensions. Very useful from the downloads folder !

Aimé Risson 19 Aug 28, 2021
Python function to stream unzip all the files in a ZIP archive: without loading the entire ZIP file or any of its files into memory at once

Python function to stream unzip all the files in a ZIP archive: without loading the entire ZIP file or any of its files into memory at once

Department for International Trade 167 Nov 23, 2021
Instant Fuzzy File Search for Alfred

List all the files inside a folder using fd, and instantly fuzzy-search through all of them using fzf, all from inside Alfred with a single keyword: fzf.

Mr. Pennyworth 21 Nov 17, 2021
MHS2 Save file editing tools. Transfers save files between players, switch and pc version, encrypts and decrypts.

SaveTools MHS2 Save file editing tools. Transfers save files between players, switch and pc version, encrypts and decrypts. Credits Written by Asteris

null 26 Nov 20, 2021
Vericopy - This Python script provides various usage modes for secure local file copying and hashing.

Vericopy This Python script provides various usage modes for secure local file copying and hashing. Hash data is captured and logged for paths before

null 13 Oct 2, 2021
This project is a set of programs that I use to create a README.md file.

?? codex-readme ?? codex-readme What is it? This project is a set of programs that I use to create a README.md file. How does it work? It reads progra

Tom Dörr 195 Dec 1, 2021
Annotate your Python requirements.txt file with summaries of each package.

Summarize Requirements ?? ?? Annotate your Python requirements.txt file with a short summary of each package. This tool: takes a Python requirements.t

Zeke Sikelianos 7 Oct 27, 2021
Creates folders into a directory to categorize files in that directory by file extensions and move all things from sub-directories to current directory.

Categorize and Uncategorize Your Folders Table of Content TL;DR just take me to how to install. What are Extension Categorizer and Folder Dumper Insta

Furkan Baytekin 1 Oct 17, 2021
Python file organizer application

Python file organizer application

Pak Maneth 1 Oct 24, 2021