第一次在C站发表文章

2018年首先开始浏览C站,计划通过C站不断提升自我,首先分享的是在工作当中如何使用python提升自己的工作效率。

平时工作当中需要整理科室的改善提案,虽然可以分发给相关联络人员进行整理,但是整理的速度相对有点慢的,同时整理出来的效果不利于后期的查询和维护,故需要设计一个脚本程序用于快速统计改善提案。
目前公司的改善提案主要通过Word格式进行提交,(我觉得公司可以开发一个系统进行统筹的,但是公司估计没有钱就无法进行开发了),所以如何进行快速遍历当地文件夹中的word文件并提取相关的信息非常重要,如下图:

一个科室有200号人,一个公司有1万号人,想想工作量就知道有多少了!
通过学习python,可以进行遍历所有的word文件,提取关键信息后重新命名并进行统筹:
思路方法:1、将word文件进行统一格式,doc格式和docx格式在python当中需要不同的包进行读取,这里统一使用docx包进行读取,将doc另存为docx格式。
2、读取关键信息,打开改善提案表后如图,

其中word里面都是通过表格进行存储信息的,所以可以使用document里面的tables包进行提取信息
3、提取信息后重新命名
4、使用os.walk遍历文件夹位置
5、当然,要让科室的其他人使用的话,可以考虑做成GUI的方法(毕竟科室里面理解GUI的人太少了),只要黏贴目标的文件夹位置和保存的Excel目标位置,就可以点击完成相关的脚本工作。
不多说了,技术人只说技术话,直接上代码:

import os
import docx,xlwt
import re
import time
from win32com import client as wc
from tkinter import *
import sys

global path,path2,entry1,entry2

def Savedocx(fdir):
word=wc.Dispatch(‘Word.Application’)
doc=word.Documents.Open(fdir)
doc.SaveAs(os.path.splitext(fdir)[0]+".docx",16)
doc.Close()
word.Quit()
os.remove(fdir)

def changedocname(fdirname):
dc=docx.Document(fdirname)
table=dc.tables
renyuan=re.findall(r’[\S]{2,3}’,table[0].cell(0,1).text)[0]
tianmingcheng=re.findall(r’[\S]{1,99}’,table[0].cell(1,1).text)[0]
if “\” in tianmingcheng:
tianmingcheng.replace("\","、")
if ‘/’ in tianmingcheng:
tianmingcheng.replace("/","、")
tian_date=table[0].cell(1,3).text
try:
gangwei=re.findall(r’[\S]{1,20}’,table[0].cell(0,7).text)[0]
except:
if gangwei==None:
#if not gangwei.strip():
gangwei=“没填写”
new_fname=str(tianmingcheng)+"#"+renyuan+"#"+str(gangwei)+".docx"
os.rename(fdirname,os.path.dirname(fdirname)+"\"+new_fname)

def bianlidir(path):
all=[]
for fpath,dirs,fs in os.walk(path):
for f in fs:
filename=os.path.join(fpath,f)

           if filename.endswith(".doc"):Savedocx(filename)for fpath,dirs,fs in os.walk(path):for f in fs:filename=os.path.join(fpath,f)all.append(filename)for i in all:print(i)try:changedocname(i)except:print(i+" in error")return all

def tongji_execl(path,path2):

 tongjiexcel=[]     for fpath,dirs,fs in os.walk(path):for f in fs:filename=os.path.join(fpath,f)tongjiexcel.append(filename)title=["改善提案名称","改善人姓名","提案属性"]book=xlwt.Workbook()sheet1=book.add_sheet('Sheet1',cell_overwrite_ok=True)for i in range(len(title)):sheet1.write(0,i,title[i])for j in range(len(tongjiexcel)):try:sheet1.write(j+1,i,os.path.split(tongjiexcel[j])[-1].split("#")[i].split(".")[0])except:continuebook.save(path2+"/"+"改善提案统计.xls")

def tongji(path,path2):
a=1
if os.path.isdir(path) and os.path.isdir(path2):
bianlidir(path)
tongji_execl(path,path2)
a=0
sys.exit
else:
print(“路径输入有误,请重新输入路径”)

def click_button():
global entry1
global entry2
path=entry1.get()
path2=entry2.get()
tongji(path,path2)

def tuxingzhanshi():
global entry1
global entry2
global frame
frame=Tk()
frame.title(“改善提案统计”)
label1=Label(frame,width=100,text=“请输入需要遍历改善提案的文件夹地址”)
label1.pack()
entry1=Entry(frame)
entry1[“width”]=100
entry1.pack()
label2=Label(frame,width=100,text=“请输入需要保存遍历文档的Excel地址”)
label2.pack()
entry2=Entry(frame)
entry2[“width”]=100
entry2.pack()
b1=Button(frame,text=“开始统计”,width=15,command=click_button)
#b1.bind("",click_button)
b1.pack()
frame.mainloop()
if name==‘main’:
tuxingzhanshi()

如果有需要的同学,可以联系本人进行沟通学习,联系邮箱:guanjw@gacmotor.com

使用python统计改善提案相关推荐

  1. python统计字母空格个数_python统计字母、空格、数字等字符个数的实例

    如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...

  2. python统计元素个数_python怎么统计列表中元素的个数

    python统计列表中元素的个数的方法:可以通过count()方法来实现.该方法可以统计字符串中某个字符出现的次数,并返回子字符串在字符串中出现的次数.具体用法如:[count=List.count( ...

  3. 怎么用python统计字数_使用Python 统计高频字数的方法

    问题 (来自Udacity机器学习工程师纳米学位预览课程) 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一 ...

  4. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

  5. Python统计在一个队列中有多少个正数,多少个负数

    如题,使用python统计在一个列表中的数字,有多少个正数,多少个负数. 思路一:使用列表生成式,生成新的列表 思路二:传统判断思维,累加 以下是Demo(代码基于python3.6): #!/usr ...

  6. Python统计网站访问日志log中的IP信息,并排序。。

    Python统计网站访问日志log中的IP信息,并排序,打印排名靠前的IP及访问量.示例代码如下: #!/usr/bin/env pythonipdict = {}file = open(" ...

  7. python英文高频句统计_使用Python 统计高频字数的方法

    问题 (来自Udacity机器学习工程师纳米学位预览课程) 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一 ...

  8. 使用PYTHON统计项目代码行数

    目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...

  9. Python统计列表中的重复项出现的次数的方法

    本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下: 对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现 ...

最新文章

  1. 是什么浪费了我的时间
  2. java 连接redis失败_java 连接Redis问题及demo
  3. iOS之路9-#import 与#include和 @class的区别
  4. Flink的处理背压​原理及问题-面试必备
  5. bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)
  6. 新人报道,写的东西还请大神们多指导!也希望能让和我一样的同事少走弯路。...
  7. linux服务器组件有哪些,推荐几个linux服务器面板
  8. android opencv 图像旋转90度,使用OpenCV转换图像( 旋转 90度)的简单方法?
  9. 抖音/快手/火山热门技术---抖音微商引流之抖音实战引流技巧
  10. 尤雨溪:重头来过的 Vue3 带来了什么?
  11. 新手学Python之学习官网教程(二: Using the Python Interpreter)
  12. C++实现Cholesky分解
  13. 如何正确使用TreeView的HitTest方法?
  14. linux kill virus
  15. 文华财经期货日内多空金叉波段彩带幅图指标公式,震荡区间决策预警信号指标公式
  16. 【零基础学STM32】CubeMX+HAL玩转电机控制
  17. 响指一打,闪亮登场! | 冷知识:你会打响指吗?
  18. redhat linux 字体安装,Linux: 字体安装
  19. modelsim se 10.1a 下载与破解
  20. makefile实例

热门文章

  1. 安卓手机微信发不出去怎么办 微信不能发信息怎么办
  2. 使命召唤linux服务器,Linux下使用dmidecode查看服务器的详细的硬件配置
  3. 齐岳磷光金属铱配合物Ir(ppy-CH2-R)2(bpy-(CONH-C4H9)2)(PF6)
  4. 齐岳磷光配合物Ir(CzPPya)3|Ir(NPPya)3金属铱配合物
  5. 【欧式距离:二维和三维定位算法】
  6. JavaScript 输入一个数 返回 2数相乘 使得 2数尽可能接近
  7. 比亚迪营收向左,利润向右
  8. Python绘制成都地铁全线路图!有路线图也搞不清楚啊!
  9. oracle11G与10G网络通信差异
  10. canvas制作酷炫时钟