首页 > 解决方案 > makedirs 无法创建目录,因为它包含问号

问题描述

有人创建了一个很棒的脚本来下载他们的 TOS 允许的视频供个人使用。但是,当脚本尝试根据标题名称创建目录时,由于问号“?”而产生错误。在标题中。Windows 不允许在目录名称中使用特殊字符。有没有办法告诉 makedirs 忽略特殊字符?

Traceback (most recent call last):
  File "D:\nick.py", line 91, in <module>
    main()
  File "D:\nick.py", line 88, in main
    episode.download()
  File "D:\nick.py", line 37, in download
    os.makedirs(dirname)
  File "C:\Users\*****\AppData\Local\Programs\Python\Python38\lib\os.py", line 223, in makedirs
    mkdir(name, mode)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: "The Crystal Maze\\What's The Sign For Winning?"

标签: python

解决方案


您可以使用此行删除符号:

''.join([i for i in name if i.isalnum() or i.isspace()])

您必须更改dirname我上面写的源代码:

os.makedirs(dirname) # in line 37, in download

它将保存为名称,但没有符号:

Out[58]: 'The Crystal Maze Whats The Sign For Winning'

推荐阅读