python3不引发无效文件nam的异常

2024-05-26 11:54:37 发布

您现在位置:Python中文网/ 问答频道 /正文

如何让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'的文件。注意文件名以无效字符结尾

我知道我可以创建自己的异常,如果我检测到一个无效的名称,我可以引发这些异常,但在这种情况下,这是没有意义的。我只关心我是否在操作系统级别做一些无效的事情。在这种情况下,它似乎在默默地失败,我不喜欢这样。在

编辑:对不起,我想我的问题不清楚。

  • 我想让它创建一个文件,我很高兴。在
  • 问题是创建的文件名在 无效字符。我希望全名都在那里。在
  • 为什么python不能提出一个强烈的问题 遇到无效字符时处理它

Tags: 文件topathname文件名logginghtmldir
1条回答
网友
1楼 · 发布于 2024-05-26 11:54:37

因此(感谢eryksun),尤其是传递给open()的字符串中的':'实际上是NTFS系统上的一个分隔符,它表示要写入多个数据流:

我的代码可以很好地处理文件名中无效的任何其他字符(例如*)。因此,我想出的解决方案是在我将文件名中的任何':'替换为-,然后将其传递给open()

base_file_name= base_file_name.replace(':', '-')

{cd1>中的文件名对我来说是无效的。在

相关问题 更多 >