Как я могу заставить 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'
. Обратите внимание, что имя файла заканчивается недопустимым символом
Я знаю, что могу создать свои собственные исключения, которые я могу вызвать, если обнаружу недопустимое имя, но в этом случае это бессмысленно.Меня волнует только то, что я пытаюсь сделать что-то недопустимое на уровне ОС.Кажется, в этом случае он молча терпит неудачу, и мне это не нравится.
Редактировать: Извините, я думаю, мой вопрос не был ясен.
- Я делаю хочу, чтобы он создал файл, эта часть меня устраивает.
- Проблема в том, что создаваемое имя файла останавливает на недействительномперсонаж.Я хочу, чтобы там было полное имя.
- Мой вопрос таков: Почему python не вызывает исключение, поэтому я могу обработать его, когда он встречает недопустимый символ