84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
问题是这样的, 我爬虫抓取了知乎的问题,然后想要用问题作为本地保存的文件名。
可是有一些问题(如下)中包含了" / ,?"诸如此类的不能够创建文件的字符。
如何从A股/港股/新三板等五千多只股票中选择出一只大牛股?
请问如何用正则表达式过滤他们? 或者有没有其他的办法 ?
走同样的路,发现不同的人生
新建文件夹的时候自己输入特殊的字符,windows系统会有以上的提示,我是这么做的:
import re fileName = re.sub('[\/:*?"<>|]','-',fileName)
没有试过linux系统的,只是自己的方法,也希望能跟你一起找到更好的方法
要去掉不合适的字符不需要正则表达式,只要用 translate 方法就可以:
name.translate(None, "|\\?*<\":>+[]/'")
或者替换为下划线:
from string import maketrans table = maketrans("|\\?*<\":>+[]/'", '_'* 13) name = name.translate(table)
如果 name 是 unicode 则 table 的形式略有区别:
name
unicode
table
table = dict( (ord(c), ord('_')), for c in "|\\?*<\":>+[]/'" )
如果要删掉字符则把 ord('_') 改为 None。
ord('_')
None
另外并非合法字符构成的就是合法文件名,比如 .、nul 之类也不是合法的文件名,路径过长也不合法。
.
nul
新建文件夹的时候自己输入特殊的字符,windows系统会有以上的提示,我是这么做的:
没有试过linux系统的,只是自己的方法,也希望能跟你一起找到更好的方法
要去掉不合适的字符不需要正则表达式,只要用 translate 方法就可以:
或者替换为下划线:
如果
name
是unicode
则table
的形式略有区别:如果要删掉字符则把
ord('_')
改为None
。另外并非合法字符构成的就是合法文件名,比如
.
、nul
之类也不是合法的文件名,路径过长也不合法。