NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4612 most downloaded on PyPI
high-level file-system operations for lazy devs.
Last release 2 months ago
07 Jul 2026
Release timing varies
gaps range from 8 days to 11 months
Nearly every release is documented
notes for 24 of 24 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
24 releases · first in 2020
One column per quarter.
Add support for file-like objects in get_file_hash.
get_file_hash.IndexError in convert_size_bytes_to_string for sizes >= 1024 YB. #186 (thanks to @SAY-5)download_file to prevent path traversal. #181pre-commit hooks.Fix search methods not working correctly with relative paths.
pre-commit hooks.Fix atomic file operations support on Windows. #121
Python 3.14 support.search_* methods.pre-commit hooks.Bump requirements and pre-commit hooks.
pytest.pre-commit hooks.Add transform_filepath method. #12 #13
mypy to pre-commit.transform_filepath method. #12 #13join_filename return value when basename or extension are empty.pyproject Ruff conf warnings.pre-commit hooks.Add transform_filepath method. #12 #13
mypy to pre-commit.transform_filepath method. #12 #13join_filename return value when basename or extension are empty.pyproject Ruff conf warnings.pre-commit hooks.Fix permissions inheritance from existing file when using write_file with atomic=True. #94
write_file with atomic=True. #94pre-commit hooks.Add get_permissions and set_permissions methods.
get_permissions and set_permissions methods.write_file with atomic=True. #94write_file with atomic=True atomicity. #91Add possibility to write files atomically (fsutil.write_file(path, content, atomic=True)). #91
fsutil.write_file(path, content, atomic=True)). #91Add tar files operations support. #48
Python 3.12 support. (#84)tar files operations support. #48 (#87)setup.cfg to pyproject.toml.flake8 with Ruff.tox test command.Python >= 3.8.Black pre-commit hook line-length option value.fix-future-annotations pre-commit hook.pre-commit hooks.Rename default branch from master to main.
master to main.flake8 config to setup.cfg.flake8 checks.mypy to CI (strict mode).pre-commit to CI.pre-commit hooks.- Remove tests/ from dist.
tests/ from dist.Fix FileNotFoundError when calling make_dirs_for_file with filename only.
FileNotFoundError when calling make_dirs_for_file with filename only.Fix OSError when downloading multiple files to the same temp dir.
OSError when downloading multiple files to the same temp dir.Drop old code targeting Python < 3.8.
Python < 3.8.get_unique_name method.replace_file method.replace_dir method.get_dir_hash method. #10pathlib.Path path arguments. #14pattern argument in search_dirs and search_files methods.setup.cfg (setuptools declarative syntax) generated using setuptools-py2cfg.pyupgrade to pre-commit config.Add default json encoder to write_file_json for encoding also datetime and set objects by default.
Python 3.11 support.Python < 3.8 support. #17pypy to CI.pre-commit.write_file_json for encoding also datetime and set objects by default.str.format with f-strings.dirpath argument optional in download_file method.download_file NameError when requests is not installed.Add read_file_lines_count method.
read_file_lines_count method.read_file_lines method with two new arguments: line_start and line_end (for specifying the lines-range to read).Fixed create_zip_file content directory structure.
create_zip_file content directory structure.Added read_file_json and write_file_json methods.
read_file_json and write_file_json methods.requests requirement (it's optional now).Updated join_path to force concatenation even with absolute paths.
get_parent_dir method.join_path to force concatenation even with absolute paths.join_path to return a normalized path.join_filepath method to use join_path.Added delete_dir_content method (alias for remove_dir_content method).
delete_dir_content method (alias for remove_dir_content method).download_file method.read_file_from_url method.remove_dir_content and method.Added get_dir_creation_date method.
create_zip_file method.extract_zip_file method.get_dir_creation_date method.get_dir_creation_date_formatted method.get_dir_last_modified_date method.get_dir_last_modified_date_formatted method.get_file_creation_date method.get_file_creation_date_formatted method.get_file_last_modified_date method.get_file_last_modified_date_formatted method.read_file_lines method.Added convert_size_bytes_to_string method.
convert_size_bytes_to_string method.convert_size_string_to_bytes method.get_dir_size method.get_dir_size_formatted method.get_file_size method.get_file_size_formatted.get_path to join_path.get_hash to get_file_hash.clean_dir method and added relative tests.- Released python-fsutil
python-fsutilYour coding agent can read these notes before it upgrades. Set up the MCP server →