Python-根据已有的行政区域信息,自动生成exl文件

最近接到个小任务,需要从下图这样的信息中找出社区、行政村并且分类。事后我计算了一下,只是行政村就有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()
View Code

 

posted @ 2018-01-03 20:52  Jneeee  阅读(507)  评论(0编辑  收藏  举报