python 批量刪除兩個指定字符中間的字符串,字符串,刪除指定字符

# -*- coding: cp936 -*-

import re
import string

# 方法一
""""刪除兩個標記字符中間的字符串內容"""
def deletesACharacterBetweenTwoSpecifiedCharacters(startStr,endStr,filename,saveName):
 # 打開文件獲取文件裏面的內容
 file = open(filename +'.txt')
 lines = file.readlines()
 string = ''.join(lines)
 # 字符串截取,截取字符串中的兩個指定的標識字符中間的內容
 # result = re.findall("aa(.*?)bb",string)
 result = re.findall(startStr+"(.*?)"+endStr, string)
 # result  是篩選出來的中間字符列表格式
 print(result)
 # 中間字符轉換成字符串
 zhongjianStr = "".join(result)
 # 中間字符拼接成sub函數可以批量截取的格式
 zhongjianStr = "["+zhongjianStr+"]"
 # print(re.sub(zhongjianStr,'',string))
 zhongjianStr = re.sub(zhongjianStr,'',string)
 zhongjianStr = re.sub(startStr+endStr,'',zhongjianStr)
 # 將截取的字符寫入文件裏面
 # 創建文件名 文件可讀寫性  編碼格式
 save = open(saveName +'.txt',mode='w',encoding='utf-8')
 save.write(zhongjianStr)
 save.close()

# 函數使用
# deletesACharacterBetweenTwoSpecifiedCharacters('aa','bb','ceshi','result')


# 方法二
"""""""""可以簡寫刪除的字符'a-zA-Z0-9讀書'"""""""""
# 這樣使用會將文本里所有的有讀和書的字都刪掉,他刪掉的不是詞語讀書,而是刪的字讀和書
def batchDelStrAndSaveFile(searchStr,fileName,saveName):
 print(batchDelStrAndSaveFile)
 file = open(fileName+'.txt')
 lines = file.readlines()
 string = ''.join(lines)
 needDelStr = '['+searchStr+']'
 getWantStr = re.sub(needDelStr,'',string)
 # 將截取的字符寫入文件裏面
 # 創建文件名 文件可讀寫性  編碼格式
 save = open(saveName +'.txt',mode='w',encoding='utf-8')
 save.write(getWantStr)
 save.close()


#函數使用
batReFile = 'mingchao'
batSaFile = 'batSaveStr'
# 可以簡寫刪除不想要的字符
# 例子'a-zA-Z0-9'
# batSearcStr = 'a-z'
# batchDelStrAndSaveFile(batSearcStr,batReFile,batSaFile)






# def checkFile (keywords,text):
#     return re.sub('|'.join(keywords),'***',text)
# keywords = ('暴力','色情')
# text = '這句abc話a不c含v暴力,也不含色情,暴'
# print(checkFile(keywords ,text))


# 方法三
""""""""" 拼接成需要的字符格式"'a','b','c'"""""
# def formatTheRequiredCharacters(listChar):
#     return "'"+"','".join(listChar)+"'"


"""""""""# 刪除指定的字符,刪除字符不支持'a-z'這樣書寫"""""""""
def getDelStrAndSaveStr(searchKeywords,readFileName,saveFileName):
 print(getDelStrAndSaveStr)
 file = open(readFileName + '.txt')
 lines = file.readlines()
 string = ''.join(lines)
 getWantStr = re.sub('|'.join(searchKeywords),'',string)
 # 將截取的字符寫入文件裏面
 # 創建文件名 文件可讀寫性  編碼格式
 save = open(saveFileName + '.txt',mode = 'w',encoding = 'utf-8')
 save.write(getWantStr)
 # print(getWantStr)
 save.close()


# print ([chr(i) for i in range(65,91)])#所有大寫字母
# print ([chr(i) for i in range(97,123)])#所有小寫字母
# print ([chr(i) for i in range(48,58)])#所有數字

refile = 'shangxu'
safile = 'getSingle'
# searc = ("a","b")
xiaoXieZiMu = [chr(i) for i in range(97,123)]
daXieZiMu = [chr(i) for i in range(65,91)]
shuzi = [chr(i) for i in range(48,58)]
cizu = ['愛下電子Txt版閱讀,下載和分享更多電子請訪問','手機訪問','未完待續','求訂閱','求月票','求推薦','求推薦票'
        '小說','本書籍由 http://www.qingkan9.com/ 提供下載','/','[',']']
searc = cizu + xiaoXieZiMu+daXieZiMu+shuzi
getDelStrAndSaveStr(searc,refile,safile)

def deletesACharacterBetweenTwoSpecifiedCharacters(startStr,endStr,filename,saveName):
 # 打開文件獲取文件裏面的內容
 file = open(filename +'.txt')
 lines = file.readlines()
 string = ''.join(lines)
 # 字符串截取,截取字符串中的兩個指定的標識字符中間的內容
 # result = re.findall("aa(.*?)bb",string)
 result = re.findall(startStr+"(.*?)"+endStr, string)
 # result  是篩選出來的中間字符列表格式
 # print(result)
 # 中間字符轉換成字符串
 # zhongjianStr = "".join(result)
 # 中間字符拼接成sub函數可以批量截取的格式
 # zhongjianStr = "["+zhongjianStr+"]"
 # print(re.sub(zhongjianStr,'',string))

 # print(result)
 zhongjianStr = re.sub('|'.join(result),'',string)
 zhongjianStr = re.sub(startStr+endStr,'',zhongjianStr)
 # 將截取的字符寫入文件裏面
 # 創建文件名 文件可讀寫性  編碼格式
 save = open(saveName +'.txt',mode='w',encoding='utf-8')
 save.write(zhongjianStr)
 save.close()

# 函數使用
deletesACharacterBetweenTwoSpecifiedCharacters('aaa','bbb','ceshi','result')



代碼有點low,還在探索中,希望大神指教,尋找更優的方法。






發佈了29 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章