# 4.1. Sanitize a filename

The `sanitize_filename()` function returns a filename which replaced invalid character(s) for a filename within the argument.

Sample Code

      from pathvalidate import sanitize_filename

      fname = "fi:l*e/p\"a?t>h|.t<xt"
      print(f"{fname} -> {sanitize_filename(fname)}\n")

      fname = "\0_a*b:c<d>e%f/(g)h+i_0.txt"
      print(f"{fname} -> {sanitize_filename(fname)}\n")

Output

      fi:l*e/p"a?t>h|.t<xt -> filepath.txt

      _a*b:c<d>e%f/(g)h+i_0.txt -> _abcde%f(g)h+i_0.txt

The default target `platform` is `universal`. i.e. the sanitized file name is valid for any platform.

# 4.2. Sanitize a filepath

The `sanitize_filepath()` function returns a filepath which replaced invalid character(s) for a filepath within the argument.

Sample Code

      from pathvalidate import sanitize_filepath

      fpath = "fi:l*e/p\"a?t>h|.t<xt"
      print(f"{fpath} -> {sanitize_filepath(fpath)}\n")

      fpath = "\0_a*b:c<d>e%f/(g)h+i_0.txt"
      print(f"{fpath} -> {sanitize_filepath(fpath)}\n")

Output

      fi:l*e/p"a?t>h|.t<xt -> file/path.txt

      _a*b:c<d>e%f/(g)h+i_0.txt -> _abcde%f/(g)h+i_0.txt

# 4.3. Replace symbols

The `replace_symbol()` function returns a string which replaced symbol(s) within the argument.

Sample Code

      from pathvalidate import replace_symbol

      name = "\0_a*b:c<d>e%f/(g)h+i_0.txt"
      print(f"{name} -> {replace_symbol(name)}")

Output

      _a*b:c<d>e%f/(g)h+i_0.txt -> abcdefghi0txt