NotADirectoryError: [WinError 267] 目录名称无效和OSError: [Errno 22] Invalid argument:解决办法

        关于这类错误可能是由os.mkdir()创建目录时引发的错误,也可能是其他类型引起的。现在我来说一下这两个问题的解决办法。

        本人是因为爬取网页是提取title作为目录名出错。

首先我们要知道目录的格式,目录或者文件名中是不能包含下列字符的:

\ / : * ? " < > |

那么我们要做的就是去除目标字符串(目录)中包含的上述符号。

这里有两种做法

方法一:

创建一个清楚符号的函数

def remove_fuhao(string):                  # 创建函数
    list = []                              # 创建一个空列表用于储存处理后的字符
    for item in string:                    # 从目标字符串逐个提取数字或文本
        if item.isdigit() or item.isalpha():  
            list.append(item)              # 将符合的字符加入到list中
            em = "".join(list)
            return em                      # 返回em也就是处理完成的字符


string = "a*b.c/d  ,e?"
remove_fuhao(string)           # 返回的em为  abcde
             
               # 如果调用print(string)
               # 结果为  abcde
# 这个函数便将字符串中的符号清除

方法二:

        使用python内置函数replace()

# replace的简单用法  replace("被替换的", "替换成的")

str = "ab'cd!"

a = str.replace("a", "A")        # 将a替换成A
print(a)
# 输出   Abcd!

a = str.replace("!", "?")        # 将!替换成?
print(a)
# 输出   abcd?

a = str.replace("'", ":")        # 将'替换成:
print(a)
# 输出    ab:cd!

a = str.replace("!", "")        # 将!替换成空,也就相当于清除,利用这一方式可以清除不想要的号
print(a)
# 输出     abcd

replace()官方文档: icon-default.png?t=M1L8https://docs.python.org/zh-cn/3.9/library/stdtypes.html?highlight=replace#bytearray.replace 

你可能感兴趣的:(os,python,爬虫)