最近接到个小任务,需要从下图这样的信息中找出社区、行政村并且分类。事后我计算了一下,只是行政村就有500+,这样的重复性劳动果断选择Python来执行。
为了方便其他和我遇到同样问题的人,我用pyinstaller将这个程序打包了。根据以往经验,在win7 32位电脑上是可以运行的。
使用起来需要注意的就是需要有像上图【name.txt】一样的文件才行。
本来打算用爬虫爬去zf的网站信息的,无奈这几个网站风格都不一样,况且复制起来也挺方便,就没用爬虫。
原理就是利用了正则表达式,匹配了“社区”,“村”字符。可能还有“居委会”等字符我没考虑到,因此将代码贴在下面。
工具截图:
程序微云链接:%%
1 # -*- coding: utf-8 -*- 2 """ 3 Created on Thu Dec 28 11:18:39 2017 4 5 @author: Administrator 6 """ 7 8 import re 9 import xlwt 10 import tkinter as tk 11 from PIL import Image,ImageTk 12 13 def _getexl(): 14 try: 15 f = open('D://name.txt','r') 16 data = f.read() 17 except Exception as e: 18 var2.set('未找到D://name.txt!') 19 window.update() 20 #print (data) 21 workbook = xlwt.Workbook(encoding = 'ascii') #创建exl工作本 22 worksheet = workbook.add_sheet('My Worksheet') 23 m = 1 24 n = 1 25 for a in set(re.findall('(.+?社区).+?', str(data))): 26 worksheet.write(m, 0, a) 27 m += 1 28 for b in set(re.findall('(.+?村).+?', str(data))): 29 worksheet.write(n, 1, b) 30 n += 1 31 workbook.save('D://行政划分.xls') 32 var2.set('已经生成 D://行政划分.xls' ) 33 window.update() 34 #print ('写入完成!') 35 36 window = tk.Tk() #图形化窗口 37 window.title('行政区域信息表生成工具 v1.0') 38 window.geometry('350x300') 39 40 B1 = tk.Button(window,text = '开始生成',\ 41 command=_getexl,width=15,height=2) 42 B1.pack() 43 44 var2 = tk.StringVar() #tk字符串变量? 45 l2 = tk.Label(window,textvariable=var2,bg='green',\ 46 fg='white',width=40,height=2) 47 l2.pack() 48 49 l1 = tk.Label(window,text = '【使用须知】\n ①准备工作:在D盘根目录添加“name.txt”,\ 50 将型如【xx社区,xx村,xx社区,xx村】的行政划分信息写入其中。\ 51 ②点击“开始生成”按钮,(支持“社区”“村”)',bg='gray',width=40,fg='white',wraplength=270) 52 l1.pack() 53 54 load = Image.open('hndx-min.png') 55 png = ImageTk.PhotoImage(load) 56 l3 = tk.Label(window,image = png) 57 l3.image = png 58 l3.pack() 59 60 window.mainloop()