Python-根据已有的行政区域信息,自动生成exl文件
Posted AuBuCuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()
以上是关于Python-根据已有的行政区域信息,自动生成exl文件的主要内容,如果未能解决你的问题,请参考以下文章