# -*- 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,還在探索中,希望大神指教,尋找更優的方法。
python 批量刪除兩個指定字符中間的字符串,字符串,刪除指定字符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.