[英]Elegant way in python to make sure a string is suitable as a filename?
我想使用用戶提供的字符串作為導出的文件名,但必須確保該字符串在我的系統上是允許的作為文件名。 從我的角度來看,可以用例如“_”替換任何禁止的字符。
在這里,我找到了filenames 的禁用字符列表。
使用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)))
更好的解決方案可能是您使用生成的文件名在本地存儲文件,這些文件名保證唯一且文件系統安全(例如,任何 UUID 生成器都可以)。 維護一個簡單的數據庫,在原始文件名和 UUID 之間映射以供以后使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.