如何让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)
假设path的值是'Folder1/SubFolder/Some Title: thing.html'
,并且文件还不存在。在
{cd2>会引发一个无效的东西。实际发生的是创建一个名为'Folder1/Subfolder/Some Title'
的文件。注意文件名以无效字符结尾
我知道我可以创建自己的异常,如果我检测到一个无效的名称,我可以引发这些异常,但在这种情况下,这是没有意义的。我只关心我是否在操作系统级别做一些无效的事情。在这种情况下,它似乎在默默地失败,我不喜欢这样。在
编辑:对不起,我想我的问题不清楚。
因此(感谢eryksun),尤其是传递给
open()
的字符串中的':'
实际上是NTFS系统上的一个分隔符,它表示要写入多个数据流:我的代码可以很好地处理文件名中无效的任何其他字符(例如
*
)。因此,我想出的解决方案是在我将文件名中的任何':'
替换为-
,然后将其传递给open()
{cd1>中的文件名对我来说是无效的。在
相关问题 更多 >
编程相关推荐