我怎样才能让Python提高对打开文件使用无效的文件名例外吗?例如,我有此代码
def write_html_to_file(set_name, pid, html_text):
if not os.path.exists(HTML_DUMP_DIR_NAME):
os.makedirs(HTML_DUMP_DIR_NAME)
path = (HTML_DUMP_DIR_NAME + set_name + '-' + pid + '.html')
try:
with open(path, "w+", encoding='utf-8') as html_dump_file:
html_dump_file.write(html_text)
except OSError as e:
logging.basicConfig(filename=LOG_FILE_PATH, level=logging.ERROR)
logging.error('Failed to create html dump. '
+ ' error=' + e
+ ' file_name=' + path)
假设路径的值是'Folder1/SubFolder/Some Title: thing.html'
和文件尚不存在。
我想到的是,Python会引发与无效的参数,或者类似的东西的OSerror
。而实际上,它创建了一个名为'Folder1/Subfolder/Some Title'
文件。请注意文件名停止在无效字符
我知道我可以创建自己的异常,如果我发现一个无效的名字,我可以养,但在这种情况下,这是没有意义的。我只关心我试图做一些事情在操作系统级别无效。看来在这种情况下,它静静地失败,我不喜欢这样。
编辑:对不起,我想我的问题不明确。
因此,原来(感谢eryksun),特别是在字符串中传递给实际':'
的open()
是上表示要写入多个数据流NTFS系统的分隔符:
我的代码用于其他任何字符,文件名无效(*
例如)工作正常。所以,我想出了一个解决方案是将':'
替换任何-
在我的文件名之前我将它传递给open()
base_file_name= base_file_name.replace(':', '-')
':'
s是无效的文件名反正所以这是为我好。