python - python中确保字符串适合作为文件名的优雅方式?
问题描述
我想使用用户提供的字符串作为导出的文件名,但必须确保我的系统上允许该字符串作为文件名。从我的角度来看,可以用“_”替换任何禁止的字符。
在这里,我找到了文件名的禁用字符列表。
使用该功能应该很容易str.replace()
,我只是想知道是否已经有一些东西可以做到这一点,甚至可能考虑到我使用的操作系统。
解决方案
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)))
推荐阅读
- windows - Windows,服务删除后无法立即删除文件
- python - pandas Grouper 中的异常记忆问题
- docker - Docker 远程解释器未出现在最新的 PhpStorm 中
- groovy - Groovy模板引擎在java中转义括号
- pivot - Talend Pivoting 并将数据保存到另一个表中
- javascript - 如何在 Puppeteer 中设置最大视口?
- maven - 使用 spring-boot-maven-plugin 重新打包创建 uber jar 失败
- ghost-blog - 按帖子发布日期排序标签
- python - Scrapy:渲染不同的 html
- groovy - 实体的变量是变量范围的克隆吗?