Skip to main content

Disk

Disk is a Python library for interacting with the file system in an object oriented manner. I know you can use os and os.path to do all of these but I find their usage hard to remember and true to object oriented principles.

Installation

You can use pip to install Disk:

pip install disk

Usage

All files and directories (folders) are considered Path objects. Any path except the root, has a parent: the directory it is in. Directories have children, some of them are files and some are subdirectories.

Path

The Path object points to an existing or non-existing file or directory.

from disk import Path
path = Path('C:\\')

get_current_directory

Usually we want to start in the current working directory:

path = Path.get_current_directory()

list, dir, ls

All of the above methods do the same thing; ls is for linux people, dir is for windows people, and list is for literal people.

print(path.list())

directories

To get the sub-directories of a directory use the directories attribute which returns a list of Paths:

subdirectories = path.directories

files

To get the files inside a directory use the files attribute which returns a list of Paths:

files = path.files

parent_directory

The parent directory is the directory a Path (either file or directory) is inside of.

parent_directory = path.parent_directory

make_directory

To create a new directory inside a Path that is also a directory, use make_directory with the name of the new directory as the name argument:

path.make_directory(name='new_directory')

You can also create a directory at the location of the Path object by letting the name argument take its default value of None:

path.make_directory()

make_parent_directory

Sometimes you need to create a new file at a Path that doesn't already exist, i.e. the directory of the file location doesn't exist. This is when make_parent_directory becomes handy:

path.make_parent_directory(ignore_if_exists=True)

The default value of ignore_if_exists is True.

delete

The delete function moves a file or directory to the trash. If the name argument is provided the file or directory inside the Path with that name will be deleted:

path.delete(name='new_directory')

If the name argument is not provided the file or directory the Path points to will be deleted:

path.delete()

save

To save a Python object as a Pickle file using the pickle or dill library you can just use the save function of the Path which saves the object right at the location of Path.

my_list = [1, 2, 3]
Path('my_list.pickle').save(my_list, method='pickle')
Path('my_list.dill').save(my_list, method='dill')

load

To load an object from a Pickle file located at a Path you can run the load function of the Path.

list_from_pickle = Path('my_list.pickle').load(method='pickle')
list_from_dill = Path('my_list.dill').load(method='dill')

Release files for disk 2021.6.29

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for disk 2021.6.29
File Size Uploaded
disk-2021.6.29.tar.gz 14.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for disk 2021.6.29
File Interpreter ABI Platform
disk-2021.6.29-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / disk-2021.6.29.tar.gz

Download URL disk-2021.6.29.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b6353814fb9ea16122b37f2a32d7a0980ef9754a118f03a7b9c18193fc24cc51
BLAKE2b-256 checksum
How to use checksums
012dc5d406e56bc10643b5963d0cfa9be4da3fd0709f0a241b2931f240668a31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

Release files / disk-2021.6.29-py3-none-any.whl

Download URL disk-2021.6.29-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
536b48a930556a156276e22220dff022e1b370ecfa3f3febd7999b701773cf48
BLAKE2b-256 checksum
How to use checksums
fa237255adab3e4b8b80ad1cfdfed08513763ab3d036cfdf353b8ca3e086a67d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

Release history Release notifications | RSS feed

This release

2021.6.29 This release

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page