pythonword替換
❶ python如果含有兩個相同字母,如何將其中一個替換成其他字元
採取的演算法是:將第一和除其之外的每個字母對比,相同即記下替換後的word,依次下推(第二和第三、第四。。。),逐個修改映射list
#coding:utf8
if__name__=='__main__':
words=['school','google','getfileinfo','cherrypy','pypy']
printwords
tmps=words #映射list,存放替換大小寫後的list
index=0 #list遍歷到第幾個了
forwdsinwords: #遍歷words
i=0 #記錄list下的每個word長度
j=0 #記錄每個word有幾個相同的字母數
#下面採取的演算法是:將第一和除其之外的每個字母對比,相同即記下替換後的word,依次下推(第二和第三、第四。。。),逐個修改映射list:tmps
forwd_ainwds[i:]:
forwd_binwds[i+1:]:
ifwd_a==wd_b:
#printwds,wd_a.upper()
j+=1
ifj>1: #相同字母超過一個的,需要沿用之前修改好的word,否則最後記錄的將是最後一個相同字母轉大寫的word
tmp=tmp.replace(wd_a,wd_a.upper(),1)
else:
tmp=wds.replace(wd_a,wd_a.upper(),1)
#printtmp
tmps[index]=tmp #修改映射list:tmps
i+=1
index+=1
printtmps
運行結果:
['school', 'google', 'getfileinfo', 'cherrypy', 'pypy']
['schOol', 'GOogle', 'gEtFIleinfo', 'cheRrYpy', 'PYpy']
演算法二:
#coding:utf8
if__name__=='__main__':
words=['school','google','getfileinfo','cherrypy','pypy']
printwords
tmps=words #映射list,存放替換大小寫後的list
#演算法二
#下面採取的演算法是:先將單詞序列化,然後排序,接著採取兩兩相比較,減少比較次數,同時遇到相同字母的就跳到下一組對比
index=0
forwordinwords:
letters=[]
forwdinword:
letters.append(wd)
letters.sort()
#printletters
j=0
flag=False
foriinrange(len(letters)-1):
ifflag:
flag=False #重置跳過標記
continue #第一和第二位字母相同,那就沒必要再比較第二和第三位字母了,直接跳過比較第三和第四位字母
#printletters[i],letters[i+1]
ifletters[i]==letters[i+1]:
j+=1
ifj>1:
tmp=tmp.replace(letters[i],letters[i].upper(),1)
else:
tmp=word.replace(letters[i],letters[i].upper(),1)
#printtmp
tmps[index]=tmp
flag=True #jumpflag
index+=1
printtmps
測試了下運行時間,words在145個時,運行時間對比:
Time2: 0.0160000324249
Time2: 0.0150001049042
Time2: 0.0149998664856
Time1: 0.0160000324249
Time1: 0.0159997940063
Time1: 0.0150001049042
可見演算法二的最少運行時間比演算法一少,要快
❷ python字元替換replace
1、用字元串本身的replace方法
復制代碼代碼如下:
a.replace('word','python')
輸出的結果是hello
python
2、用正則表達式來完成替換:
復制代碼代碼如下:
import
re
strinfo
=
re.compile('word')
b
=
strinfo.sub('python',a)
print
b
輸出的結果也是hello
python
至於用哪個方法的話,看你自己的選擇了。
❸ python編寫一個自動替換word文檔文字程序
編者的話(可以跳過):
在政府單位實習了一段時間,發現有很多資料需要製作,而且繁瑣重復,第一時間就想到了python,因為在辦公自動化這方面我只知道python,本著能偷懶就偷懶的原則,通過查閱資料整出一個小腳本然後用tkinter的ui組件寫了一個界面方便除我之外的人使用,此軟體涉及內部文件就不發布了。截圖如下:
需求如下:
當你有一大堆的word文檔,然後這些word文檔都有其固定格式,也許是一個表格,也許就是只有文字的普通文檔,這些固定模式的文檔我稱之為模板。如果有10份模板,這些模板的填寫內容大致相同,比如說文件的編號,年份,一些公司名稱等。然後基本上就是機械的找位子復制改改格式循環往復然後時間就過去了,做了一堆無意義的事情。
所以核心功能:需要把自己想要填寫的內容填寫到模板的指定位置。
2、實現方式
2.1使用python-docx
有興趣的可以深入學習一下python-docx,這里僅僅是實現需求。python-docx只能處理docx所以doc需要轉為docx具體方法可以自行網路。
這個替換程序是可以替換word文檔內表格和非表格的內容且不會修改原模板的任何格式,填寫好上面所給函數的參數然後在ide里運行一下,前提是事先在文檔中要填寫的位置寫好要替換的內容,也就是old_text,如下所示:
❹ python中如何將word表格內的內容進行替換
在使用word中的一個自然段,就是一個paragraph,最簡單的方式如下命令獲得全部的段落,這是一個可迭代的類型,類似於數組方式。就可以直接獲得文章中的第一段第一段的全部文字內容,如果我們連貫起來代碼如下獲得run其實也是非常簡單的如下命令python-docx這個包,不僅可以讀出paragraph的內容,還可以往裡面寫。可以使用add_paragraph()方法來添加內容。如下命令代碼每一個屬性都可以查看它的類型,這個類型一般在docx中是個枚舉類型的常量,放在docx.enum.text這個頭文件中。