懒人的法宝——办公自动化!
沒錯(cuò)!辦公自動(dòng)化他來了!果然,代碼都是懶人發(fā)明出來的。接下來讓我們一起來看看這個(gè)批改作業(yè)的自動(dòng)化腳本吧!學(xué)會(huì)了這種思想可以幫助我們高效解決許多重復(fù)性的工作,比如說批量修改文件的名稱、類型、位置等等,快讓我們通過一個(gè)案例一起學(xué)起來吧!
一、什么是辦公自動(dòng)化??
Python辦公自動(dòng)化主要是批量化、自動(dòng)化、定制化解決數(shù)據(jù)問題,目前主要分為三大塊:自動(dòng)化office、自動(dòng)化機(jī)器人、自動(dòng)化數(shù)據(jù)服務(wù)。辦公自動(dòng)化(Office Automation,簡稱OA)是將現(xiàn)代化辦公和計(jì)算機(jī)技術(shù)結(jié)合起來的一種新型的辦公方式。辦公自動(dòng)化沒有統(tǒng)一的定義,凡是在傳統(tǒng)的辦公室中采用各種新技術(shù)、新機(jī)器、新設(shè)備從事辦公業(yè)務(wù),都屬于辦公自動(dòng)化的領(lǐng)域。?通過實(shí)現(xiàn)辦公自動(dòng)化,或者說實(shí)現(xiàn)數(shù)字化辦公,可以優(yōu)化現(xiàn)有的管理組織結(jié)構(gòu),調(diào)整管理體制,在提高效率的基礎(chǔ)上,增加協(xié)同辦公能力,強(qiáng)化決策的一致性 。
二、實(shí)戰(zhàn)案例
有一個(gè)子目錄“zuoye”有若干文本文件,gbk編碼。分別存儲(chǔ)了每個(gè)學(xué)生提交上來的算術(shù)作業(yè),文件名是學(xué)生的學(xué)號(hào)。算術(shù)作業(yè)包括+-*/,每行一道題設(shè)計(jì)一個(gè)自動(dòng)批改程序,要求完成以下功能允許每個(gè)數(shù)前后可能有空白,允許結(jié)果為負(fù)數(shù)的情況,運(yùn)算的數(shù)均為正整數(shù)。除法只考慮能整除的情況,要考慮可能有空白行,可能出現(xiàn)在文件的任意位置空白行不計(jì)入總題數(shù),格式錯(cuò)誤的題數(shù)計(jì)入總題數(shù)將批改結(jié)果保存到文件“results.txt“”,每一行記錄學(xué)號(hào),答對的百分比。
txt文件如下:
?需要的結(jié)果如下:
三、思路描述
?四、完整代碼
import os import rename_list = [] allname_list = [] result_dic = {}target = os.walk("zuoye")for root, ds, fs in target:for f in fs:allname_list.append(f)name_list.append(f[:7:])def calculator(expression):if "+" in expression:sign = "+"elif "-" in expression:sign = "-"elif "*" in expression:sign = "*"else:sign = "/"num_list_1 = []num_list_2 = []split_list_1 = re.split("[=]", expression)split_list_2 = re.split("[*,=,+,/,-]", expression)for i in split_list_1:num_list_1.append(i.replace(" ", ""))if int(num_list_1[-1]) < 0:for i in split_list_2:num_list_2.append(i.replace(" ", ""))num_1 = num_list_2[0]num_2 = num_list_2[1]num_3 = num_list_2[-1]try:int(num_1) * int(num_2) * int(num_3)except ValueError:return 0else:if -int(num_3) == eval(f"{num_1}{sign}{num_2}"):return 1else:return 0else:for i in split_list_2:num_list_2.append(i.replace(" ", ""))num_1 = num_list_2[0]num_2 = num_list_2[1]num_3 = num_list_2[2]try:int(num_1) * int(num_2) * int(num_3)except ValueError:return 0else:if int(num_3) == eval(f"{num_1}{sign}{num_2}"):return 1else:return 0def func(num):r = open("zuoye"+'\\{0}'.format(allname_list[num]),encoding="GBK")tem_list = []result_list =[]line = r.readline()while line:# isspace()方法判斷當(dāng)該行是空行時(shí),跳過該行if line.isspace():line = r.readline()else:line = line.strip('\n') #去掉列表中每一個(gè)元素的換行符tem_list.append(line)line = r.readline()for i in tem_list:result_list.append(calculator(i))result_dic[name_list[num]] = sum(result_list)/len(result_list)Note = open('result.txt',mode='w') for i in range(0,len(allname_list)):func(i)Note.writelines([str(list(result_dic.keys())[i])," ",str(list(result_dic.values())[i]),"\n"]) #\n 換行符五、代碼講解
總結(jié)
以上是生活随笔為你收集整理的懒人的法宝——办公自动化!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构】经典习题
- 下一篇: python少儿图形编程_少儿Pytho