python中文正则表达式 如何过滤不适合文件夹命名的字符
怪我咯
怪我咯 2017-04-17 16:33:13
0
2
445

问题是这样的, 我爬虫抓取了知乎的问题,然后想要用问题作为本地保存的文件名。

可是有一些问题(如下)中包含了" / ,?"诸如此类的不能够创建文件的字符。

如何从A股/港股/新三板等五千多只股票中选择出一只大牛股?

请问如何用正则表达式过滤他们? 或者有没有其他的办法 ?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆 (2)
洪涛

新建文件夹的时候自己输入特殊的字符,windows系统会有以上的提示,我是这么做的:

import re fileName = re.sub('[\/:*?"<>|]','-',fileName)

没有试过linux系统的,只是自己的方法,也希望能跟你一起找到更好的方法

    黄舟

    要去掉不合适的字符不需要正则表达式,只要用 translate 方法就可以:

    name.translate(None, "|\\?*<\":>+[]/'")

    或者替换为下划线:

    from string import maketrans table = maketrans("|\\?*<\":>+[]/'", '_'* 13) name = name.translate(table)

    如果nameunicodetable的形式略有区别:

    table = dict( (ord(c), ord('_')), for c in "|\\?*<\":>+[]/'" )

    如果要删掉字符则把ord('_')改为None

    另外并非合法字符构成的就是合法文件名,比如.nul之类也不是合法的文件名,路径过长也不合法。

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!