Ошибка операционной системы: [Ошибка 22] Недопустимый аргумент: «путь»

#python #python-3.x #logging #python-logging

Вопрос:

Я хотел использовать logging модуль. Вот мой код:

 from datatime import datatime
import logging
output_dir = fr'./{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}.log'  # fr"" is f""   r"" 
logging.basicConfig(filename=output_dir, level=logging.DEBUG)
logger = logging.getLogger()
 

Но когда я его запущу, эта ошибка вызовет:

 Traceback (most recent call last):
  File "C:UsersPaliProxDesktopProjectsmain.py", line 5, in <module>
    logging.basicConfig(filename=output_dir, level=logging.DEBUG)
  File "C:UsersPaliProxAppDataLocalProgramsPythonPython39liblogging__init__.py", line 2003, in basicConfig
    h = FileHandler(filename, mode,
  File "C:UsersPaliProxAppDataLocalProgramsPythonPython39liblogging__init__.py", line 1146, in __init__ 
    StreamHandler.__init__(self, self._open())
  File "C:UsersPaliProxAppDataLocalProgramsPythonPython39liblogging__init__.py", line 1175, in _open    
    return open(self.baseFilename, self.mode, encoding=self.encoding,
OSError: [Errno 22] Invalid argument: 'C:\Users\PaliProx\Desktop\Project\2021-09-09 18:28:27.log'
 

В чем проблема с моим кодом, которая вызывает эту ошибку?

Ответ №1:

В именах файлов Windows не могут быть двоеточия. Попробуйте это вместо этого:

output_dir = fr'./{datetime.now().strftime("%Y-%m-%d %H%M%S")}.log'