Skip to main content

python-fsutil

file-system utilities for lazy devs.

Features

  • Simple and intuitive.
  • Supports both python 2 and python 3.
  • Zero dependencies.
  • Well tested.

Index

Installation

  • Run pip install python-fsutil

Usage

Just import the main module and call its methods.

import fsutil

This is the list of all available methods:

Methods

  • assert_dir

# Raise an OSError if the given path doesn't exist or it is not a directory.
fsutil.assert_dir(path)
  • assert_exists

# Raise an OSError if the given path doesn't exist.
fsutil.assert_exists(path)
  • assert_file

# Raise an OSError if the given path doesn't exist or it is not a file.
fsutil.assert_file(path)
  • assert_not_dir

# Raise an OSError if the given path is an existing directory.
fsutil.assert_not_dir(path)
  • assert_not_exists

# Raise an OSError if the given path already exists.
fsutil.assert_not_exists(path)
  • assert_not_file

# Raise an OSError if the given path is an existing file.
fsutil.assert_not_file(path)
  • clean_dir

# Clean a directory by removing empty sub-directories and/or empty files.
fsutil.clean_dir(path, dirs=True, files=True)
  • copy_dir

# Copy the directory at the given path and all its content to dest path.
# If overwrite is not allowed and dest path exists, an OSError is raised.
# More informations about kwargs supported options here:
# https://docs.python.org/3/library/shutil.html#shutil.copytree
fsutil.copy_dir(path, dest, overwrite=False, **kwargs)
  • copy_dir_content

# Copy the content of the directory at the given path to dest path.
# More informations about kwargs supported options here:
# https://docs.python.org/3/library/shutil.html#shutil.copytree
fsutil.copy_dir_content(path, dest, **kwargs)
  • copy_file

# Copy the file at the given path and its metadata to dest path.
# If overwrite is not allowed and dest path exists, an OSError is raised.
# More informations about kwargs supported options here:
# https://docs.python.org/3/library/shutil.html#shutil.copy2
fsutil.copy_file(path, dest, overwrite=False, **kwargs)
  • create_dir

# Create directory at the given path.
# If overwrite is not allowed and path exists, an OSError is raised.
fsutil.create_dir(path, overwrite=False)
  • create_file

# Create file with the specified content at the given path.
# If overwrite is not allowed and path exists, an OSError is raised.
fsutil.create_file(path, content='', overwrite=False)
  • delete_dir

# Alias for remove_dir.
fsutil.delete_dir(path)
  • delete_dirs

# Alias for delete_dirs.
fsutil.delete_dirs(*paths)
  • delete_file

# Alias for delete_file.
fsutil.delete_file(path)
  • delete_files

# Alias for delete_files.
fsutil.delete_files(*paths)
  • exists

# Check if a directory of a file exists at the given path.
value = fsutil.exists(path)
  • get_file_basename

# Get the file basename from the given path/url.
basename = fsutil.get_file_basename(path)
  • get_file_extension

# Get the file extension from the given path/url.
extension = fsutil.get_file_extension(path)
  • get_filename

# Get the filename from the given path/url.
filename = fsutil.get_filename(path)
  • get_hash

# Get the hash of the file at the gived path using
# the specified algorithm function (md5 by default).
filehash = fsutil.get_hash(path, func='md5')
  • get_path

# Get the absolute path relative to the given basefile (__file__) directory path.
path = fsutil.get_path(basefile, path)
  • is_dir

# Determine whether the specified path represents an existing directory.
value = fsutil.is_dir(path)
  • is_empty

# Determine whether the specified path represents an empty directory or an empty file.
value = fsutil.is_empty(path)
  • is_empty_dir

# Determine whether the specified path represents an empty directory.
value = fsutil.is_empty_dir(path)
  • is_empty_file

# Determine whether the specified path represents an empty file.
value = fsutil.is_empty_file(path)
  • is_file

# Determine whether the specified path represents an existing file.
value = fsutil.is_file(path)
  • join_filename

# Create a filename joining the file basename and the extension.
filename = fsutil.join_filename(basename, extension)
  • join_filepath

# Create a filepath joining the directory path and the filename.
filepath = fsutil.join_filepath(dirpath, filename)
  • list_dirs

# List all directories contained at the given directory path.
dirs = fsutil.list_dirs(path)
  • list_files

# List all files contained at the given directory path.
files = fsutil.list_files(path)
  • make_dirs

# Create the directories needed to ensure that the given path exists.
# If a file already exists at the given path an OSError is raised.
fsutil.make_dirs(path)
  • make_dirs_for_file

# Create the directories needed to ensure that the given path exists.
# If a directory already exists at the given path an OSError is raised.
fsutil.make_dirs_for_file(path)
  • move_dir

# Move an existing dir from path to dest directory.
# If overwrite is not allowed and dest path exists, an OSError is raised.
# More informations about kwargs supported options here:
# https://docs.python.org/3/library/shutil.html#shutil.move
fsutil.move_dir(path, dest, overwrite=False, **kwargs)
  • move_file

# Move an existing file from path to dest directory.
# If overwrite is not allowed and dest path exists, an OSError is raised.
# More informations about kwargs supported options here:
# https://docs.python.org/3/library/shutil.html#shutil.move
fsutil.move_file(path, dest, overwrite=False, **kwargs)
  • read_file

# Read the content of the file at the given path using the specified encoding.
content = fsutil.read_file(path, encoding='utf-8')
  • remove_dir

# Remove a directory at the given path and all its content.
# If the directory is removed with success returns True, otherwise False.
# More informations about kwargs supported options here:
# https://docs.python.org/3/library/shutil.html#shutil.rmtree
fsutil.remove_dir(path, **kwargs)
  • remove_dirs

# Remove multiple directories at the given paths and all their content.
fsutil.remove_dirs(*paths)
  • remove_file

# Remove a file at the given path.
# If the file is removed with success returns True, otherwise False.
fsutil.remove_file(path)
  • remove_files

# Remove multiple files at the given paths.
fsutil.remove_files(*paths)
  • rename_dir

# Rename a directory with the given name.
# If a directory or a file with the given name already exists, an OSError is raised.
fsutil.rename_dir(path, name)
  • rename_file

# Rename a file with the given name.
# If a directory or a file with the given name already exists, an OSError is raised.
fsutil.rename_file(path, name)
  • rename_file_basename

# Rename a file basename with the given basename.
fsutil.rename_file_basename(path, basename)
  • rename_file_extension

# Rename a file extension with the given extension.
fsutil.rename_file_extension(path, extension)
  • search_dirs

# Search for directories at path matching the given pattern.
dirs = fsutil.search_dirs(path, pattern)
  • search_files

# Search for files at path matching the given pattern.
files = fsutil.search_files(path, pattern)
  • split_filename

# Split a filename and returns its basename and extension.
basename, extension = fsutil.split_filename(path)
  • split_filepath

# Split a filename and returns its directory-path and filename.
dirpath, filename = fsutil.split_filepath(path)
  • write_file

# Write file with the specified content at the given path.
fsutil.write_file(path, content, append=False, encoding='utf-8')

Testing

# create python virtual environment
virtualenv testing_fsutil

# activate virtualenv
cd testing_fsutil && . bin/activate

# clone repo
git clone https://github.com/fabiocaccamo/python-fsutil.git src && cd src

# install requirements
pip install --upgrade pip
pip install -r requirements.txt

# run tests using tox
tox

# or run tests using unittest
python -m unittest

# or run tests using setuptools
python setup.py test

License

Released under MIT License.

Metadata

Release files for python-fsutil 0.1.0

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

Source distribution (sdist)

Source distribution for python-fsutil 0.1.0
File Size Uploaded
python-fsutil-0.1.0.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-fsutil 0.1.0
File Interpreter ABI Platform
python_fsutil-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.0 kB

Release files / python-fsutil-0.1.0.tar.gz

Download URL python-fsutil-0.1.0.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f6a2c4cf3203411d5d79f400001cd29dce976ad2f76790c6a85fe7d71c7dc2c7
BLAKE2b-256 checksum
How to use checksums
658f8421a9fef516a6d83280b250a872f0f325f44ce0d5ed3a947faf940c8583
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.6

Release files / python_fsutil-0.1.0-py3-none-any.whl

Download URL python_fsutil-0.1.0-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b0824875f4566f800cbad5c120136d0cc881fb22bf9336dc3aadb1a609239e5
BLAKE2b-256 checksum
How to use checksums
85f57c3d9b0d61e6a81b335d4a91b1f0112427148f6db4816595c9a6b760842d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.6

Release history Release notifications | RSS feed

0.14.1

2 release files

0.14.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

This release

0.1.0 This release

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