def create_html_data_page(all_json): retxt = '<script>\ndota_json_hero_data={' p = Pinyin() for i in all_json['英雄']: retxt += '\n"' + i + '":{"拼音":"' + p.get_pinyin(i).replace('-', '') + '","英文":"' + all_json['英雄'][i]['英文名'] + '","代码":"' + all_json['英雄'][i]['代码名'] + '","攻击后摇":"' + str(all_json['英雄'][i]['攻击后摇']) + '",' for j in [['主属性'], ['近战远程'], ['阵营'], ['碰撞体积'], ['边界体积'], ['体质类型']] + heropro_num: retxt += '"' + j[0] + '":' if isinstance(all_json['英雄'][i][j[0]]['1'], str): retxt += '"' + all_json['英雄'][i][j[0]]['1'] + '",' else: retxt += ability.better_float_to_text(all_json['英雄'][i][j[0]]['1']) + ',' retxt += '"技能":[' for j in range(len(all_json['英雄'][i]['技能'])-8): retxt += '"' + all_json['英雄'][i]['技能'][j] + '",' talent=['10级左','10级右','15级左','15级右','20级左','20级右','25级左','25级右'] for j in talent: retxt+='"' +i+ j + '天赋",' retxt = retxt.rstrip(',') + '],"技能中文名":[' for j in range(len(all_json['英雄'][i]['技能'])-8): w=all_json['英雄'][i]['技能'][j] retxt += "'" + all_json['技能'][w]['中文名'] + "'," for j in talent: w=i+ j + '天赋' retxt+= "'" + all_json['技能'][w]['中文名'] + "'," retxt = retxt.rstrip(',') + '],"全属性黄点":' + str(all_json['英雄'][i]['全属性黄点']) + ',' retxt = retxt.rstrip(',') + '},' retxt = retxt.rstrip(',') + '};\n</script>' return retxt
def fromCodeToName(factors, codes): # 准备数据 name = factors[factors.index.isin(codes)].name.values # 将汉字转换为拼音 p = Pinyin() names = [p.get_pinyin(s) for s in name] return names
def hanzi2pinyin(city): # 汉字2拼音 pin = Pinyin() temp_pin = pin.get_pinyin(city) pin = temp_pin.replace('-', '') return pin
def get_weather(city): p = Pinyin() city = p.get_pinyin(city,'') url = "http://www.tianqi.com/"+city headers = { 'User-Agent':'Mozilla/5.0' } html = requests.get(url,headers=headers).text tree = etree.HTML(html) #城市 try: city_name = tree.xpath('//dd[@class="name"]/h2/text()')[0] except: content = "没有该城市天气信息,请确认你查询格式" #日期格式:"2019年06月25日 星期二 己亥年五月廿三" week = tree.xpath('//dd[@class="week"]/text()')[0].split('\u3000') #当前温度 now = tree.xpath('//p[@class="now"]')[0].xpath('string(.)') #今日天气 temp = tree.xpath('//dd[@class="weather"]/span')[0].xpath('string(.)') #湿度匹配出三个元素:1.湿度:84% 2.风向:东风 2级 3.紫外线:无 shidu = tree.xpath('//dd[@class="shidu"]/b/text()') #空气质量格式:空气质量:优 kongqi = tree.xpath('//dd[@class="kongqi"]/h5/text()')[0] #PM格式:PM: 14 pm = tree.xpath('//dd[@class="kongqi"]/h6/text()')[0] content = "【{0}】\n{1} {2}\n当前温度:{3}\n今日天气:{4}\n{5}\n{6}\n{7}\n{8}\n{9}".format( city_name,week[0],week[1],now,temp,shidu[0],shidu[1],shidu[2],kongqi,pm) return content
def getScenery(city_name): operate = DB.operateDB() result = operate.searchCity(city_name) if operate.countCity() and not result: print('没有这个城市!') return if not result: url = 'http://travel.qunar.com/place' getCityURL(url) result = operate.searchCity(city_name) city_id = result[0][0] city_number = result[0][2] if not city_number: logUtil.getLogger(1).error(city_name + ':没有该旅游城市信息') else: cityPinYin = "".join(Pinyin().get_pinyin(city_name).split('-')) pools = ThreadPoolExecutor(3) all_pools = [] # 景点网页拼接,攻略网页拼接,美食区 scnery_website = 'https://travel.qunar.com/p-cs' + city_number + '-' + cityPinYin + '-jingdian' strategy_website = 'https://travel.qunar.com/travelbook/list/22-' + cityPinYin + '-' + str( city_number) + '/hot_heat/1.htm' cate_website = 'https://travel.qunar.com/p-cs' + str( city_number) + '-' + cityPinYin + '-meishi?page=1' all_pools.append( pools.submit(qunarScenery.getScenery, ((scnery_website, city_id)))) all_pools.append( pools.submit(qunarStrategy.getStrategy, ((strategy_website, city_name)))) all_pools.append( pools.submit(qunarCate.getCate, ((cate_website, city_id)))) wait(all_pools, return_when=ALL_COMPLETED)
def read_excel(filepath): """读取excel中的内容""" excel_obj = xlrd.open_workbook(filename=filepath) # 获取excel对象 sheet_name_list = excel_obj.sheet_names() # 获取excel所有sheet的名称 print(sheet_name_list) # 汉字转为拼音,方便创建表存储数据 p = Pinyin(); sheet_name_pinyinlist = [] for sheet_name in sheet_name_list: pinyin_name = p.get_pinyin(sheet_name, splitter="").strip() # print("现在处理的是%s处理后是%s" %(sheet_name,pinyin_name)) sheet_name_pinyinlist.append(pinyin_name) print("原始sheet名称是:{sheet_name_list},\n转为拼音后是:{sheet_name_pinyinlist}" .format(sheet_name_list=sheet_name_list, sheet_name_pinyinlist=sheet_name_pinyinlist)); # sheet_obj=excel_obj.sheet_by_name(sheet_name[1]) # 根据sheet名称获取数据 sheet_obj = excel_obj.sheet_by_index(0) # 获取第1个工作表 excel_content=""; for row in sheet_obj.get_rows(): print("-------------------------------------------------------") for cell in row: # print(type(cell)) # print(cell.value) # print(cell.value) excel_content+=str(cell.value) return excel_content
def moveButton(self, button_name="成都市"): pinyin = Pinyin() city_name = re.sub('-', '', pinyin.get_pinyin(button_name)) ui.City_Button[ui.City_Dict[city_name]].move( 2 + 180 * ui.City_Dict[city_name], 6) ui.City_Button[ui.City_Dict[city_name]].setStyleSheet( "border-radius:10px;" "text-align:bottom;" "padding-bottom:2px;" f"background-image:url(../city_pictures/{city_name}.png);" "color: rgb(97, 101, 247);font:Bold 12.5pt '等线';") # 记录新按下的按钮作为老的按钮,下一次按下其他按钮时,可以对老按钮进行还原 # 它就像一个开关,按下新按钮时关闭旧按钮 self.button_flag["old"] = self.button_flag["new"] # 当按下同一个按钮时不做按钮还原操作 if self.button_flag["old"] != city_name + "_" + str( ui.City_Dict[city_name]): # 按钮还原函数 self.Reduction(self.button_flag) self.button_flag["old"] = self.button_flag["new"] self.button_flag["new"] = city_name + "_" + str( ui.City_Dict[city_name]) self.weatherInfo(button_name) # 天气温度信息获取整理 weatherInfo # 以下函数是按下城市按钮,其他控件做出的相应 self.airButton() # 生成新的网页,并在软件界面刷新新的网页 self.createHtml(button_name)
def register(params): userData = Users().getOne({Users.email == params['email']}) if (userData == None): #昵称首字母 isChinese = re.compile(u"[\u4e00-\u9fa5]+") isEnglish = re.compile('[a-zA-Z]') nickNameFirstWord = params['nickName'][0] if isChinese.search(nickNameFirstWord): first_word = Pinyin().get_initial(nickNameFirstWord) elif isEnglish.search(nickNameFirstWord): first_word = nickNameFirstWord.upper() else: first_word = '#' data = { 'email': params['email'], 'password': Users.set_password(params['password']), 'nick_name': params['nickName'], 'head_img': params['headImg'], 'first_word': first_word, 'created_at': time.time(), 'updated_at': time.time() } user = Users().add(data) if user == False: return Utils.formatError(Code.BAD_REQUEST, '注册失败') else: result = UsersAuthJWT.authenticate(params['email'], params['password']) return result return Utils.formatError(Code.BAD_REQUEST, '注册失败') return Utils.formatError(Code.BAD_REQUEST, '账号已注册')
def title_change(self): ran_str="" list_raw = self.title.split(":",1) if len(list_raw)==1: body = list_raw[0] name = "" else: name = list_raw[0] body = list_raw[1] l1 = re.split("\W+",body) len_num = len(l1) ran_list = [x for x in range(len_num)] random.shuffle(ran_list) print(l1) for i in ran_list: # print(l1[i]) if l1[i] !='': ran_str=ran_str+l1[i]+',' ran_str=ran_str[0:-1]+'!' if name != '': pin = Pinyin() name = pin.get_pinyin(name) ran_str=ran_str+'--'+name return ran_str
def searchALL(bookname, province): conn = getCon() workbook = xlrd.open_workbook(bookname, "utf-8", formatting_info=True) # 按照格式copy一张新的excle workbooknew = copy(workbook) ws = workbooknew.get_sheet(0) for i in range(len(list)): sql = "select * from bidata.cusitem_analysis_form where province = '" + province + "' and item = '" + list[ i] + "';" cur = conn.cursor() cur.execute(sql) all = cur.fetchall() for k in all: if (i < 5): for j in range(2, 2 + len(list2)): setOutCell(ws, int(list2[j - 2]), int(list3[i]), k[j]) else: for j in range(2, len(list4) + 2): setOutCell(ws, int(list2[j - 2]), int(list3[i]), k[int(list4[j - 2])]) # 修改内容月份相关 now = datetime.datetime.now() thismon = int(now.month) setOutCell(ws, 2, 1, ('当前是' + str(thismon) + '月,以下是1-' + str(thismon - 1) + '月')) searchCity(workbooknew) # workbooknew = workbooknew.decode('utf-8') p = Pinyin() workbooknew.save('sale_' + p.get_pinyin(province[:-1], '') + '.xls')
def article_cat_save(): form = Article_cat(request.form) p = Pinyin() if form.validate(): parent_id = request.form.get('parent_id') print(parent_id) cat_id = int(request.form.get('cat_id')) cat_name = request.form.get('cat_name') dir = request.form.get('dir') check = request.form.get('check') if check: dir = request.form.get('cat_name') dir = p.get_pinyin(dir, '') else: if dir: dir = request.form.get('dir') else: dir = request.form.get('cat_name') dir = p.get_pinyin(dir, '') keywords = request.form.get('keywords') description = request.form.get('description') cat_sort = request.form.get('cat_sort') status = request.form.get('status') Articles_Cat.query.filter(Articles_Cat.cat_id==cat_id).update({Articles_Cat.parent_id: parent_id,Articles_Cat.cat_name: cat_name,Articles_Cat.dir: dir, \ Articles_Cat.keywords: keywords,Articles_Cat.description: description, Articles_Cat.cat_sort: cat_sort, Articles_Cat.status: status\ }) db.session.commit() return redirect(url_for('admin.article_cat_list'))
def put(self): self.xsrf_form_html() user_id = tornado.escape.json_decode(self.get_secure_cookie("user_id")) if(self.request.files["file"][0] and (user_id != "")): #保存图片 data=self.request.files["file"][0] #time = datetime.datetime.now() #sql time: .strftime("%Y-%m-%d %H:%M:%S") md5 = hashlib.md5() md5.update(data["body"]) md5encode = md5.hexdigest() ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8)) extension = data["filename"].split(".")[-1] head = data["filename"].rstrip("."+extension) #将文件名中文转化为拼音 pinyin = Pinyin() head = pinyin.get_pinyin(head) #中文转拼音结束 savename = head + "_" + md5encode + ran_str + "." + extension #time.strftime("%Y_%m_%d_%H_%M_%S")+"_"+md5encode+"."+data["filename"].split(".")[-1] with open(os.path.join("static","profilephoto",savename),"wb") as up: up.write(data["body"]) # print(user) s=db.session() user_infos = s.query( db.User ).filter_by(id = user_id ).first() if (user_infos.profilephoto != DEFAULT_PROFILE_PHOTO) and (os.path.exists("static/"+user_infos.profilephoto)): os.remove("static/"+user_infos.profilephoto) user_infos.profilephoto = "profilephoto/"+savename s.commit() s.close() res = {"msg":"上传成功"} self.write(res) else: res = {"msg":"上传错误"} self.write(res)
def parse_album(self, response): print("进入相册页面:" + response.css("title::text").extract_first()) pin = Pinyin() data = response.body soup = BeautifulSoup(data, "html5lib") items = soup.find_all('div', class_='tab-group') # print(items) for itemv in items: item_loader = BeikeAlbumItemLoader(item=BeikeItemAlbum(), response=response) type_ = itemv.find('h4').find('a').get_text() images = itemv.find_all('img') imgs = [] for img in images: img_clena = self.get_img_url(img['src']) if img_clena is not None: imgs.append(img_clena) item_loader.add_value('type', type_) item_loader.add_value('type_en', pin.get_pinyin(self.chinese_to_en(type_))) item_loader.add_value('image_urls', imgs) item_loader.add_value('href', response.url.strip('xiangce')) item = item_loader.load_item() yield item
def parse_house(self, response): print("进入列表页:", response.url) data = response.body soup = BeautifulSoup(data, "html5lib") pin = Pinyin() city = response.xpath('/html/body/div[1]/div[1]/div[1]/a[2]/text()').extract_first() houses = soup.find_all('li', 'resblock-list') for house in houses: title = house.find('div', class_='resblock-name').find('a', class_='name').get_text() sale = house.find('div', class_='resblock-name').find('a', class_='name').find_next('span').get_text() _type = house.find('a', class_='name').find_next('span').find_next('span').get_text() address = house.find('a', class_='resblock-location').get_text("|", strip=True) area = '' obj_area = house.find(class_='area') if obj_area: area = obj_area.get_text("|", strip=True) priceavg = house.find('span', class_='number').get_text("|", strip=True) priceall_obj = house.find(class_='second') priceall = '' if priceall_obj is not None: priceall = priceall_obj.get_text("|", strip=True) href = response.urljoin(house.find('a', class_='name').get('href')) img = house.find('img', class_='lj-lazy').get('src') tagsarr = [] tags_obj = house.find('div', class_='resblock-tag').find_all('span') if tags_obj is not None: for tag_index in tags_obj: tagsarr.append(tag_index.get_text()) tags = ','.join(tagsarr) else: tags = '' item_loader = BeikeJobItemLoader(item=BeikeItem(), response=response) item_loader.add_value('city', city) item_loader.add_value('city_en', pin.get_pinyin(city)) item_loader.add_value('title', title) item_loader.add_value('sale', sale) item_loader.add_value('type', _type) item_loader.add_value('address', address) item_loader.add_value('area', area) item_loader.add_value('priceavg', priceavg) item_loader.add_value('priceall', priceall) item_loader.add_value('href', href) item_loader.add_value('img', img) item_loader.add_value('tags', tags) item = item_loader.load_item() yield item yield response.follow(item['href'], self.parse_detail) yield response.follow(item['href']+"xiangce", self.parse_album) yield response.follow(item['href'] + "huxingtu", self.parse_huxingtu) yield response.follow(item['href'] + "xiangqing", self.parse_xiangqing)
def __init__(self): self.p = Pinyin() self.files = [] self.lines = [] for r, _, f in os.walk("data"): for files in f: if files.endswith(".txt"): self.files.append(os.path.join(r, files))
def get_only_one_page(self, str0, page): p = Pinyin() str1 = p.get_pinyin(str0, '') url = 'http://588ku.com/sucai/0-default-0-0-' + str1 + '-' + str( page) + '/' print('搜索的url: ', url) result = self.get_one_page_photo_url(url) return result
def to_pinyin(word): ''' 将汉字转为拼音字母,下面的replace作用将拼音字符串之间的‘-’消除 ''' pin = Pinyin() result = pin.get_pinyin(word) final=result.replace('-','') return final
def count_keys(self): P = Pinyin() pinyin_content = P.get_pinyin(self.passage_content, '') counter = Counter(pinyin_content.lower()) print(counter) count_keys_file = codecs.open(self.COUNT_KEYS_FILE_NAME, 'w') json.dump(counter, count_keys_file, ensure_ascii=False, indent=2) count_keys_file.close()
def get_name(name_input, convert_pinyin): name = name_input.replace(" ", "-").replace("。", ".").replace(",", ",") name = filter_name(re.sub('[/:*?,.<>|\'"\\\]', '', name)) if convert_pinyin: from xpinyin import Pinyin p = Pinyin() name = p.get_pinyin(name) return name
def get_jsondata(city): p = Pinyin() city_pinyin = p.get_pinyin(city, '') url = 'http://api.openweathermap.org/data/2.5/forecast?q={},cn&mode=json&lang=zh_cn&&APPID=6a67ed641c0fda8b69715c43518b6996&units=metric'.format( city_pinyin) data = r.urlopen(url).read().decode('utf-8') data = json.loads(data) return data
def en(str): pinyin = Pinyin() result = re.findall(r'[\u4e00-\u9fa5]',string=str) string = '' for i in result: string += i result = pinyin.get_pinyin(string,u'') return result
def print_character_pinyin(self, characters): pinyin = CHARACTER_PINYIN_MAPPING.get(characters, '') pinyins = [] pinyin_nums = [] if not pinyin: pinyin = Pinyin().get_pinyin(characters, ' ', tone_marks='marks') pinyin_num = Pinyin().get_pinyin(characters, ' ', tone_marks='numbers') pinyins = pinyin.split(' ') pinyin_nums = pinyin_num.split(' ') else: for p in pinyin.split(' '): r = decode_pinyin(p) pinyins.append(r) print(f'''"{characters}": "{''.join(pinyin_nums)}",''') return pinyins
def hygge_contract(contract_title): sdf = Pinyin().get_pinyin(contract_title.split('-')[0], '').upper() # 页眉和日期 with open('flaskr/static/hyggeadd.css', 'w') as hygge_css: hygge_css.write( "@media print { @page { @top-left { content: '咨询服务合同号: " + Pinyin().get_initials(contract_title.split("-")[0], '') + time.strftime("%Y%m%d", time.localtime()) + "'}} " + ".sign-date::before { content: '" + time.strftime(" %Y 年 %m 月 %d 日", time.localtime()) + "'; }" + ".contract-series::before { content: 'T-" + time.strftime("%Y%m%d", time.localtime()) + "-" + Pinyin().get_pinyin(contract_title.split("-")[0], "").upper() + "';}}") html = render_template('hygge_contract.html') cssfile = CSS(url_for("static", filename='hyggeadd.css')) return HTML(string=html).render(stylesheets=[cssfile])
def save(self, *args, **kwargs): if not self.slug: p = Pinyin() self.slug = p.get_pinyin(self.title) if not self.content: markdown = mistune.Markdown() self.content = markdown(self.md) super().save(*args, **kwargs)
def name_submit(request): ip = log_visitor_ip(request) request_data = {} if request.method == 'GET': request_data = request.GET elif request.method == 'POST': request_data = request.POST response_data = {} global GENDER_PREDICTOR, CHINESE_GENDER_PREDICTOR, COUNTRY_PREDICTOR if not CHINESE_GENDER_PREDICTOR: CHINESE_GENDER_PREDICTOR = load_gender_predict_model( CHINESE_GENDER_MODEL_PATH) if not GENDER_PREDICTOR: GENDER_PREDICTOR = load_gender_predict_model(GENDER_MODEL_PATH) if not COUNTRY_PREDICTOR: COUNTRY_PREDICTOR = load_country_predict_model() target_name = request_data['name'] if not target_name: return JsonResponse({'gender': 'NONAME'}) try: name_info = NameInfo(name=request_data['name'], gender=request_data.get('gender', None), country=request_data.get('country', None), time=datetime.datetime.now(), ip=ip) name_info.save() except: pass is_chinese = any(u'\u4e00' <= c <= u'\u9fff' for c in target_name) if is_chinese: py = Pinyin() target_name = ' '.join([ string.capitalize(py.get_pinyin(target_name[1:], '')), string.capitalize(py.get_pinyin(target_name[0], '')) ]) if type(target_name) is unicode: target_name = target_name.encode('utf-8') ### Country Prediction country = COUNTRY_PREDICTOR.predict(target_name) response_data['country'] = country.capitalize() if country == 'china': is_chinese = True ### Gender Prediction if is_chinese: is_male = CHINESE_GENDER_PREDICTOR.predict(target_name) else: is_male = GENDER_PREDICTOR.predict(target_name) if is_male: response_data['gender'] = 'MALE' else: response_data['gender'] = 'FEMALE' return JsonResponse(response_data)
def creataTable(self, keyword): cursor = self.db.cursor() p = Pinyin() key_ = p.get_pinyin(keyword, '') if cursor.execute("SHOW TABLES LIKE '%" + key_ + "%'") == 0: sql = 'Create Table ' + key_ + ' ( commid INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, ' \ 'comment CHAR(200) , score INT(1))' cursor.execute(sql) self.db.commit()
def Poem_Detail(request, poem_id): comment_form = CommentsForm() # 根据poem_id获取的目标诗对象 poem = Poems.objects.get(id=poem_id) author = Author.objects.get(id=poem.author_id) # 诗人所有诗词 author_poems = author.poems_set.all()[:6] # 所以评论 comments = poem.comments_set.all() # 评论数 nums = comments.count() praise_num = Praise.objects.filter(poem=poem).count() try: page = request.GET.get('page', 1) except PageNotAnInteger: page = 1 # 这里的数字表示每一页有几个实例 p = Paginator(comments, 4, request=request) comments = p.page(page) # 点赞状态标识 praise_statue = 0 if request.user.is_authenticated(): statue = Praise.objects.filter(user=request.user, poem=poem) if statue: praise_statue = 1 #拼音功能 result = [] temp = [] pingyin_statue = request.GET.get('pingyin_statue', '') if pingyin_statue: from xpinyin import Pinyin words = poem.content p = Pinyin() for i in words.split('\n'): # 生成拼音 a = p.get_pinyin(i, show_tone_marks=True).split('-') for j in a: j = j + ' ' * (6 - len(j)) temp.append(j) result.append(''.join(temp) + '\n') result.append(i + '\n') temp = [] context = { 'poem': poem, 'author': author, 'author_poems': author_poems, 'comments': comments, 'comment_form': comment_form, 'nums': nums, 'praise_num': praise_num, 'praise_statue': praise_statue, 'result': result, 'pingyin_statue': pingyin_statue } return render(request, 'poem_detail.html', context=context)
def word2pinyin(word): from xpinyin import Pinyin p = Pinyin() #word='寿宝庄' if isinstance(word, unicode) == False: word = unicode(word, 'utf-8') ping = p.get_pinyin(word, ' ') #print ping #'shou bao zhuang' return ping.replace(' ', '')
def paixu(lis): # 输入一个名字的列表,按照拼音来排序 pin = Pinyin() result = [] for item in lis: result.append((item, pin.get_pinyin(item[:find_space(item) + 1]))) # 加入拼音 result.sort(key=lambda x: x[1]) # 对拼音排序 result = [x[0] for x in result] return result
def my_function(lis): #输入一个名字的列表 pin=Pinyin() result=[] for item in lis: result.append((pin.get_pinyin(item),item)) result.sort() for i in range(len(result)): result[i]=result[i][1] return result