用获取到的文本,命名文件时,出现的怪问题

用获取到的文本,命名文件时,出现的怪问题

明明获取到的文本就是普通的 str:“注册公司的几种类型你选对了吗?”
可是写入 txt 的标题时,怎么就多出了两个“\”,导致异常

用获取到的文本,命名文件时,出现的怪问题

获取文本感觉上是没什么问题的,就是抓取页面中的 H1,获得一个标题。
再用这个标题用做文件名。

用获取到的文本,命名文件时,出现的怪问题

请问,我这是哪里出错了,是不是还要对 art_t再用正则过滤一下?应该怎么写呢?


问题处理

最核心的问题是,新建文件不能使用的特殊字符:

用获取到的文本,命名文件时,出现的怪问题

文件名,是不能出现这些特殊字符的,因此要过滤。如果没猜错的话,这些都是半角的。

# 在python环境里测试一下
import re
string = '/我是<一个文件>的*文|件|名?'
rstr = r'[\/\\\:\*\?\"\<\>\|]'  # 每个字符都给他转义一下,其中反斜杠比较特殊一点
sub_str = re.sub(rstr, '', string)
print(sub_str)
 # 我是一个文件的文件名

反思

报出异常是这个样子的:
用获取到的文本,命名文件时,出现的怪问题

‘Invalid argument’ 字面意思是无效参数。 在文件名处还多了两个 ‘反斜杠’,很容易被误导。你能第一时间想到是半角’?’出了问题么?

可是,你们看:

用获取到的文本,命名文件时,出现的怪问题

这里也有个问号,怎么就能用做文件名了呢? 因为这个问号是 ‘全角’字符。