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, '')沒做賦值操作,結果沒達到預期效果,找了一會兒才想到這個問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM