5.5. Tips¶
5.5.1. Sanitize dot-files or dot-directories¶
When you process filenames or filepaths containing . or .. with the sanitize_filename function or the sanitize_filepath function, by default, sanitize_filename does nothing, and sanitize_filepath normalizes the filepaths:
print(sanitize_filename("."))
print(sanitize_filepath("hoge/./foo"))
.
hoge/foo
If you would like to replace . and .. like other reserved words, you need to specify the arguments as follows:
from pathvalidate import sanitize_filepath, sanitize_filename
from pathvalidate.error import ValidationError
def always_add_trailing_underscore(e: ValidationError) -> str:
if e.reusable_name:
return e.reserved_name
return f"{e.reserved_name}_"
print(
sanitize_filename(
".",
reserved_name_handler=always_add_trailing_underscore,
additional_reserved_names=[".", ".."],
)
)
print(
sanitize_filepath(
"hoge/./foo",
normalize=False,
reserved_name_handler=always_add_trailing_underscore,
additional_reserved_names=[".", ".."],
)
)
._
hoge/._/foo