标签:
# -*- coding: utf-8 -*- import random class GenNickName: def __init__(self,num=30): #print "__init__" self.list=[] self.wordNum=0 self.num=num self.nickNames=[] def getWordsFromTxt(self): file=open("source.txt","r") for l in file.readlines(): #print "l: " +l line=l.decode("gbk").split() #print len(line) for e in line: #print e self.list.append(e) #print len(self.list) #print "l: %s" %self.list file.close() def genNickName(self): self.getWordsFromTxt() self.wordNum=len(self.list)-1 for k in range(self.num): i=random.randint(0, self.wordNum) j=random.randint(0, self.wordNum) #print len(self.list) #print "one nick name : "+self.list[i]+self.list[j] self.nickNames.append(self.list[i]+self.list[j]) def showNames(self): print "All nicks names:" print "*"*50 i=0 for name in self.nickNames: print name, i=i+1 if(i%10==0): print " " print "*"*50 if __name__=="__main__": g = GenNickName(50) g.genNickName() g.showNames()
代码如上所示。
实现比较简单,主要难点在于,从txt文件中读取汉字后的字符分割。正常情况下,用.split函数即可,但是文中使用的是汉字,而汉字的编码是gbk,所以在分割之前先要用gbk解码。
每次运行,可以生成50个随机组合的词,如下所示:
All nicks names: ************************************************** 啊由 炉痼 柱著 摩辫 押至 炎奇 养识 励赌 类外 通朝 冯又 郊祥 潜泽 挝打 侨篡 杀拾 传曰 崩朕 纷慎 畔诱 坟趁 晨宋 名麟 痒盟 澳辽 粒紫 汛喃 国萨 娥畜 济锤 稿俘 砌产 冤映 桅托 君蜡 勒玲 肯模 酮舒 蛋陪 屁谦 湿氰 梗煎 诸邹 捍佃 音撞 革色 造菜 猎吉 字捻 报碧 **************************************************
标签:
原文地址:http://my.oschina.net/u/811744/blog/411040