在写python爬虫时,爬取文件下载时出现命名错误:
OSError: [WinError 123] 文件名、目录名或卷标语法不正确时处理办法
查了一下,window有9个特殊字符在命名不能使用:分别是下面 char _list 每个元素:
char_list = ['*','|',':','?','/','<','>','"','\\']
解决办法:
创建一个函数来遍历原字符串,若串中的字符 i 在 char_list 中,用 re_title_list 中的第 j 个元素替换 (j 是由 random 产生的随机数)。将修改的字符或不用修改的字符和 news_list 连接。
用 news_title 来重组 字符串 并返回
import randomtitle = 'd可兑换*>'def titlecheck(title):#修改文件名不符合window的特殊字符char_list = ['*','|',':','?','/','<','>','"','\\']re_title_list = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']news_title=''for i in title:j = random.randint(0,25)if i in char_list:news_title = news_title + re_title_list[j]else:news_title = news_title + ireturn news_titlenews_title = titlecheck(title)print(news_title)
结果:
d可兑换hn
成功改写了字符串。
完毕!
Python3在创建文件及文件夹目录的时候windows10文件名不能包含的特殊符号处理转义;OSError: [WinError 123] 文件名 目录名或卷标语法不正确时处理办法