首页 > 解决方案 > python中确保字符串适合作为文件名的优雅方式?

问题描述

我想使用用户提供的字符串作为导出的文件名,但必须确保我的系统上允许该字符串作为文件名。从我的角度来看,可以用“_”替换任何禁止的字符。

在这里,我找到了文件名的禁用字符列表

使用该功能应该很容易str.replace(),我只是想知道是否已经有一些东西可以做到这一点,甚至可能考虑到我使用的操作系统。

标签: pythonfilenames

解决方案


pathvalidate是一个 Python 库,用于清理/验证字符串,例如文件名/文件路径/等。

该库提供了用于验证路径的两个实用程序:

import sys
from pathvalidate import ValidationError, validate_filename

try:
    validate_filename("fi:l*e/p\"a?t>h|.t<xt")
except ValidationError as e:
    print("{}\n".format(e), file=sys.stderr)

以及用于清理路径的实用程序:

from pathvalidate import sanitize_filename

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

推荐阅读