zoukankan      html  css  js  c++  java
  • python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)

    问题描述

    今天在写爬虫爬取影评时,本来的思路把影评的标题作为文件名,将每个影评的详情内容写入到“标题.txt”文件中,直到我遇到了这个问题:

    这时我突然意识到,文件名中有些字符是不能存在的,怎么解决这些问题呢?

    解决问题

    首先想到的就是在创建文件时去除掉这些标题中的不能用的字符,机制的我赶紧去重命名了桌面上的一个文件,试图试验出那些字符,然后,机智的微软爸爸早已洞悉了一切,

    也就是说文件名中不可以包含

    /  : * ? " < > |
    

    这9个字符,因为考虑到直观性而且数据量不大,最简单的方法就是逐个过滤掉标题中的非法字符,即建立一个字典(这里的字典不是指python中的字典结构),对于每一个title都遍历一次,去除掉其中的非法字符,如下:

    def correct_title(self, title):
        error_set = ['/', '\', ':', '*', '?', '"', '|', '<', '>']
        for c in title:
            if c not in error_set:
                title = title.replace(c, '')
        return title
    

    如此,就使用字符串的replace()达方法到了预期效果.

    总结

    上述做法的主要目的是看着舒服,但实际上在使用和检索时效率不算高也不方便,具体如何做还是要看自己的需求来定.
    还有就是需要注意一个点replace()是有返回值的,会返回结果,我一开始使用title.replace(c, '')没做赋值操作,结果没达到预期效果,找了一会儿才想到这个问题

  • 相关阅读:
    【转载】爸妈,求你们不要这么懂事
    【Selenium】各种方式在选择的时候应该怎么选择
    java动态绑定与静态绑定【转】
    java 字符串池【转】
    【转】java中PriorityQueue优先级队列使用方法
    【转】程序员的出路之一
    关于现在,关于未来
    计算机网络实验(router_sim)工具
    MIT算法导论课程
    最大间隙问题
  • 原文地址:https://www.cnblogs.com/chuaner/p/12242521.html
Copyright © 2011-2022 走看看