好久沒(méi)有寫(xiě)博客了,這幾年的開(kāi)發(fā)讓我感受良多,同時(shí)我也感覺(jué)到了我自己成長(zhǎng)的還不夠。所以,以后這里將會(huì)有我個(gè)人所有的項(xiàng)目經(jīng)驗(yàn)總結(jié),以及項(xiàng)目中使用到的一些方便的小工具也會(huì)寫(xiě)出來(lái)。
目錄
前言
一、獲取所有拼音為某個(gè)拼音的漢字。
二、拿到所有項(xiàng)目中的代碼,并拷貝在同一份TXT文件當(dāng)中
三、將連續(xù)的字符串改成一個(gè)字單獨(dú)一行
總結(jié)
前言
隨著項(xiàng)目的開(kāi)發(fā),項(xiàng)目上線審核的時(shí)候,最麻煩的一項(xiàng):就是屏蔽詞的審核,在這里我建議大家,如果項(xiàng)目中有修改昵稱或者屏蔽非法文字的需求的話,一定要弄一個(gè)屏蔽詞庫(kù),最好放在客戶端。這個(gè)屏蔽詞庫(kù)里面要全部小寫(xiě),然后玩家在修改昵稱的時(shí)候,把大寫(xiě)轉(zhuǎn)成小寫(xiě)。然后再進(jìn)行屏蔽詞對(duì)比。有時(shí)候,審核人員會(huì)有各種各樣奇怪的需求。比如:所有拼音是wei或者是xin的漢字都不能出現(xiàn)。還有一些會(huì)讓你給出所有的項(xiàng)目代碼或者項(xiàng)目中的文字。我都遇到過(guò),接下里給大家介紹我是怎么解決這些情況的
一、獲取所有拼音為某個(gè)拼音的漢字。
這種情況是真的還好,但也著實(shí)EX。比如:所有拼音是wei和拼音是xin的漢字都不能出現(xiàn)(在不考慮聲調(diào)的情況下)。這個(gè)難點(diǎn)有幾個(gè):
- 我怎么知道某個(gè)漢字的拼音是什么?
- 我怎么拿到所有的漢字
這里我推薦大家使用python來(lái)完成這項(xiàng)工程。
首先,需要大家先加載python中的拼音庫(kù),因?yàn)樾枰眠@個(gè)來(lái)獲取當(dāng)前漢字的拼音
可以在在命令提示符中輸入如下代碼
pip install xpinyin
?然后回車,等待安裝完畢。然后打開(kāi)自己的編輯工具。下出以下代碼,然后執(zhí)行就可以獲取到所有拼音是該拼音的漢字。代碼如下:
from xpinyin import Pinyin
p = Pinyin()
def pinyin(word):
# 轉(zhuǎn)換,不顯示聲調(diào),使用空格作為分隔符。
ret = p.get_pinyin(word,tone_marks=None,splitter=' ')
print(ret)
all_chiness = ""
for i in range(0x4e00,0x9fa6):
str = chr(i)
ret = p.get_pinyin(str,tone_marks=None,splitter=' ')
if ret == "wei" :
all_chiness += str
print(all_chiness)
執(zhí)行結(jié)果如下:
?這樣子我們就獲取到了所有的拼音是wei的漢字,還不包括聲調(diào)的。如果想要知道詳細(xì)的xpinyin的用法。大家可以參考這個(gè):
點(diǎn)擊這里前往學(xué)習(xí)
二、將項(xiàng)目中所有的代碼,拷貝在同一份TXT文件當(dāng)中
這是要求你必須得把所有項(xiàng)目的代碼拷貝到一個(gè)TXT文件中。二話不說(shuō),直接上代碼
import os
class CopyScriptToTxt:
def CopyFile(self,srcPath,destPath):
src = open(srcPath,"r",encoding='UTF-8');
dest = open(destPath,"a",encoding='UTF-8');
for line in src:
dest.write(line);
dest.write('\n');
src.close();
dest.close();
tempCopy = CopyScriptToTxt();
# 項(xiàng)目代碼所在總目錄
g = os.walk(r"C:\Program Files\Games\FPS\Scripts")
# 目標(biāo)文件,最好先創(chuàng)建好
setDestPath = r"C:\Users\Administrator\Desktop\temp.txt"
for path,dir_list,file_list in g:
for file_name in file_list:
filePath = os.path.join(path, file_name)
print(filePath)
tempCopy.CopyFile(filePath, setDestPath);
到此,執(zhí)行該腳本,然后打開(kāi)桌面上的temp文件,你就發(fā)現(xiàn)你所有的代碼都在這里了。
三、將連續(xù)的字符串改成一個(gè)字單獨(dú)一行
這里就要用到正則表達(dá)式了,就是匹配出所有的中文漢字。這里的難點(diǎn)并不是匹配漢字,而是怎么把匹配到的漢字分開(kāi)。
這次我并沒(méi)有用到Python,而是用到了Lua。
首先介紹以這個(gè)string.gmatch(全局模式)這個(gè)方法:創(chuàng)建并返回一個(gè)迭代器,可用于for語(yǔ)句中迭代的進(jìn)行全局查找。迭代器每執(zhí)行一次返回一個(gè)找到的字符串,如果在模式串中用圓括號(hào)指定的匹配分組,則返回值有多個(gè)分別對(duì)應(yīng)各個(gè)匹配分組的捕獲結(jié)果。分組可以相互嵌套,捕獲結(jié)果返的順序?qū)?yīng)模式串中匹配分組的左圓括號(hào)出現(xiàn)的前后順序。如果你希望第一個(gè)返回值是匹配結(jié)果的完整字符串,那么請(qǐng)將整個(gè)模式串包含在一對(duì)圓括號(hào)內(nèi)。
接下來(lái)上代碼:
local txt = ""
-- 這個(gè)str就是第一個(gè)獲得的所有拼音為wei的漢字
local str = "微危委威巍薇偎蜲揻詴溦隈燰鰄崴縅揋覣楲隇喴煨鰃媙癓嶶葳愄蝛倭椳逶厃烓霺癐鳂嵔葨圍唯維違為桅洈蓶壝溈違峞潿鍏帷爲(wèi)隹撝矀鮠囲溈圩湋峗潙醀幃為闈惟琟韋囗欈維圍潿覹媁濰鄬嵬濰闈幃犩韋喡硙尾偽委偉緯萎葦偉愇瑋葦骪儰撱痏薳鮪娓梶碨踓浘韑嵔瀢芛韙徫猥骩僞捼瓗蔿鮪暐硊諉寪洧緯隗崣濻艉韡廆煒荱颹偽捤瑋蒍骫唩斖痿諉媁椲磈鍡屗渨腲韙亹嶉煒頠未衛(wèi)喂遺位味慰胃為畏謂猬魏蔚尉罻軎煟菋蘶鏏犚螱餵瓗褽鮇媦硙讏懀緭躛為苿藯爲(wèi)蝟餧衞墛瞆讆磑躗渭轊熭蜼霨叞猚衛(wèi)饖喡謂鳚新欣薪心辛鋅芯俽盺妡邤惞鑫杺馫炘噺莘廞忻鋅昕馨歆噷嬜訢忄鈊枔鐔襑礥鐔伈信釁芯脪釁伩馸孞焮軐顖囟憖舋訫阠愖"
for k, v in string.gmatch(str, "[%z\1-\127\194-\244][\128-\191]*") do
txt = txt.."\n"..k
end
print(txt)
點(diǎn)擊這里可以在線測(cè)試代碼文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-407521.html
總結(jié)
以上這些,都是作者在項(xiàng)目審核中遇到的情況,各有各的不同,各有各的操作。最后,希望審核人員、渠道客服以及技術(shù)人員不要天天五點(diǎn)鐘下班吧!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-407521.html
到了這里,關(guān)于Python實(shí)現(xiàn)獲得所有拼音為某個(gè)拼音的所有漢字的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!