python在工作中怎么用_如何用python在工作中“偷懒”
原標題:如何用python在工作中“偷懶”
“偷懶還能干完活,才是本事 ”
有些朋友在工作中會有這樣的困惑:明明我從早忙到晚,為什么得到的評價還不高?
要知道,企業對一個員工的評價是出于“ 產出”而非“ 付出”。所以,如果把大量時間花在機械重復的工作上,不但工作效率不高,對個人發展來說也無甚幫助。
而這些工作,如果對于會點編程的人來說,往往通過幾行代碼就可以快速搞定了。
于是,我去了解了一下身邊不同崗位( HR、產品、運營、市場、數據分析師等)每天需要面對的重復性勞動(肯定會有不全,歡迎補充~),總結了一些在工作中非常常見的例子,并且將源碼整理好供參考。希望這些程序可以讓你的工作更高效!(升職加薪了別忘了回來發紅包哦~)
那么如何將這些統統實現呢?
我將這些分為以下幾類,大家可以自行評估,各取所需:
系統錄入自動化
由于你經常需要不斷的將一些信息錄入系統,每一次錄入的過程中你可能需要不斷的點擊一些按鈕,面對這種情況,完全可以寫一個自動腳本,每次代替你來執行這些點擊的行為。
這里我們需要用到 splinter:
pip install splinter
這里寫了一個自動登錄郵箱的腳本,可以實現文本輸入和網頁點擊:
#coding=utf-8
importtime
fromsplinter importBrowser
defsplinter(url):
browser = Browser
#login 126 email websize
browser.visit(url)
#wait web element loading
time.sleep( 5)
#fill in account and password
browser.find_by_id( 'idInput').fill( 'xxxxxx')
browser.find_by_id( 'pwdInput').fill( 'xxxxx')
#click the button of login
browser.find_by_id( 'loginBtn').click
time.sleep( 8)
#close the window of brower
browser.quit
if__name__ == '__main__':
websize = 'https://mail.163.com/'
splinter(websize)
同理可以寫一個簡單的游戲掛機腳本,游戲掛機腳本,無非就是自動移動鼠標,自動點擊,進行重復操作,所以,第一步就是如何控制鼠標。
importwin32api
importtime
defmove_click(x, y, t= 0):# 移動鼠標并點擊左鍵
win32api.SetCursorPos((x, y)) # 設置鼠標位置(x, y)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN |
win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # 點擊鼠標左鍵
ift == 0:
time.sleep(random.random* 2+ 1) # sleep一下
else:
time.sleep(t)
return0
# 測試
move_click( 30, 30)
defresolution:# 獲取屏幕分辨率
returnwin32api.GetSystemMetrics( 0), win32api.GetSystemMetrics( 1)
值得注意的是,一定要在管理員權限下的cmd中運行,否則點擊無效。
這個時候,你已經可以寫個循環,不停地點擊屏幕上不同的幾個點,最基礎的掛機腳本就實現了。
更高級的游戲外掛:
https://github.com/JamesRaynor67/jump
Excel自動化處理
Excel合并
在實際應用中可能會有不同月份的數據或者不同周的報告等等的Excel數據,都是單個獨立的文件,如果想要整體使用的話就需要合并一下,那么如何利用python把指定目錄下的所有Excel數據合并成一個文件呢?
思路:利用python xlrd包讀取excle文件,然后將文件內容存入一個列表中,再利用xlsxwriter將內容寫入到一個新的excel文件中。
# -*- coding: utf-8 -*-
#將多個Excel文件合并成一個
importxlrd
importxlsxwriter
#獲取excel中所有的sheet表
defgetsheet(fh):
returnfh.sheets
#獲取sheet表的行數
defgetnrows(fh,sheet):
table=fh.sheets[sheet]
returntable.nrows
#讀取文件內容并返回行內容
defgetFilect(file,shnum):
fh=open_xls(file)
table=fh.sheets[shnum]
num=table.nrows
forrow inrange(num):
rdata=table.row_values(row)
datavalue.append(rdata)
returndatavalue
或者直接用concat+一個循環來實現:
fori invar_list:
df_0 = data[[ 'var_1', 'var_2', 'var_3', 'var_4',i]][data[i]== '信息']
df_0[ 'month'] = date_replace(i)
df_0 = df_0[[ 'var_1', 'var_2', 'var_3', 'var_4', 'var_5']]
li.append(df_0)
writer = pd.ExcelWriter( r'C:Usersmapping.xlsx')
df = pd.concat(li)
df.to_excel(writer, 'Sheet1',index= False,header = None)
df
Excel中添加數據圖表
整理好excel文件后下一步需要做的是處理文件里的數據,根據數據來生成一些自己需要的圖表:
importxlsxwriter
#設置一個例子
data = [ 20, 45, 26, 18, 45]
#創建表格
workbook = xlsxwriter.Workbook( "temp.xlsx")
worksheet = workbook.add_worksheet( "data")
#添加數據
worksheet.write_column( 'A1', data)
#創建圖表
chart = workbook.add_chart({ 'type': 'line'})
#圖表添加數據
chart.add_series({
'values': '=data!$A1:$A6',
'name': '圖表名稱',
'marker': {
'type': 'circle',
'size': 8,
'border': { 'color': 'black'},
'fill': { 'color': 'red'}
} ,
'data_labels': { 'values': True},
'trendline': {
'type': 'polynomial',
'order': 2,
'name': '趨勢線',
'forward': 0.5,
'backward': 0.5,
'display_equation': True,
'line': { 'color': 'red', 'width': 1, 'dash_type': 'long_dash'}
}
})
worksheet.insert_chart( 'c1', chart)
workbook.close
實現效果:
這部分圖文來自網絡,侵刪。
word關鍵信息提取
假設你收到1萬份簡歷,你想先根據學校做一些篩選,這時候利用python將大量的簡歷進行信息匯總,只提取關鍵信息用excel查看起來更加方便。
docx文件自己本身是壓縮文件,打開壓縮包之后竟然發現里面有個專門存儲word里面文本的文件。
那么步驟就變得簡單了:
1. 打開docx的壓縮包
2. 獲取word里面的正文信息
3. 利用正則表達式匹配出我們想要的信息
4. 將信息存儲到txt中(txt可以用excel打開)
5. 批量調用上述過程,完成一萬份簡歷的提取工作
利用正則匹配獲取關鍵信息:
importre
defget_field_value(text):
value_list = []
m = re.findall( r"姓 名(.*?)性 別", table)
value_list.append(m)
m = re.findall( r"性 別(.*?)學 歷", table)
value_list.append(m)
m = re.findall( r"民 族(.*?)健康狀況", table)
value_list.append(m)
'''
此處省略其他字段匹配
'''
returnvalue_list
參考資料:
https://blog.csdn.net/geoker/article/details/80149463
自動化運營監控
在平時的工作中,一定會有對運營情況的監控,假設你管理一家店鋪,那么一些關鍵指標肯定是你需要每天查看到的,比如店鋪訪問數,商品瀏覽數,下單數等等,這個時候不用每天重復地去統計這些數據,這需要寫一個自動化程序,每天將數據保存在固定的文件夾下就可以實現報表的實時監控。
如果你的數據來源是線下文件:
利用python操作線下文件將其載入數據庫
通過數據庫對數據進行處理
利用python輸出結果
fromimpala.dbapi importconnect
fromimpala.util importas_pandas
importdatetime
conn = connect(host= 'host',port= 21050,auth_mechanism= 'PLAIN',user= 'user',password= 'password')
#host:數據庫域名
#user:數據庫用戶名
#password:數據庫密碼
df_data = pd.read_excel( 'temp.xlsx')
rows =[]
forindex, row indf_data.iterrows:
rows.append( '('+ '"'+str(row[ 'case_id']).replace( 'nan', 'null')+ '"'+ ','+ '"'+str(row[ 'birth_date'])+ '"'+ ')'+ ',')
a= '''
INSERT into table
(case_id, birth_date)
values '''
fori inrows:
a += i
a = a[: -1]
cursor1 = conn.cursor
cursor1.execute(a)
cursor1.close
conn.close
print( '成功導入數據至數據庫...')
dela
delrows
如果你的數據來源是線上文件(存在數據庫)
直接利用python鏈接數據庫進行一些列的操作
導出你所需要的結果
importsql
#sql是封裝的sql文件
sql_end = sql.sql_end
cursor1 = conn.cursor
fori insql_end.split( ';'):
print(i)
cursor1.execute(i)
cursor1.close
conn.close
print( '程序運行結束,請執行下一步。')
python連接數據庫:
自動發送郵件
使用Python實現自動化郵件發送,可以讓你擺脫繁瑣的重復性業務,節省非常多的時間。
數據分析師經常會遇到一些取數需求,有些數據需求是每天都需要的,有些數據需求是每周一次的。對于這些周期性的數據需求,每次都重復性地手動導出這些數據,并回傳給需求方,是很繁瑣且浪費時間的。所以完全可以設置自動郵件來解決。
"Talk is cheap, show you the code"
常見的郵件肯定有三部分:
1、正文
2、圖片
3、附件
OK
導入我們需要用到的包
fromemail.mime.text importMIMEText
fromemail.mime.multipart importMIMEMultipart
fromemail.mime.image importMIMEImage
importsmtplib
msg = MIMEMultipart
在郵件中插入正文:
##在郵件中插入文本信息
df_text= '''
Hi all ,
這是一個測試郵件,詳情請參考附件
情況如下圖:
'''
msgtext = MIMEText(df_text, 'html', 'utf-8')
msg.attach(msgtext)
如果你需要插入圖片,利用同樣的方法,在郵件中插入圖片:
##在郵件中插入圖片信息
image = open( 'temp.jpg', 'rb')
msgimage = MIMEImage(image.read)
msg.attach(msgimage)
在郵件中插入附件:
##在郵件添加附件
msgfile = MIMEText(open( 'temp.xlsx', 'rb').read, 'base64', 'utf-8')
msgfile[ "Content-Disposition"] = 'attachment; filename="temp.xlsx"'
msg.attach(msgfile)
剩下的就是設置一些郵件參數來發送郵件:
#設置郵件信息常量
email_host= ''# 服務器地址
sender = ''# 發件人
password = ''# 密碼,如果是授權碼就填授權碼
receiver = ''# 收件人
發送郵件:
try:
smtp = smtplib.SMTP(host=email_host)
smtp.connect(email_host)
smtp.starttls
smtp.login(sender, password)
smtp.sendmail(sender, receiver.split( ',') , msg.as_string)
smtp.quit
print( '發送成功')
exceptException:
print( '發送失敗')
然后將你的任務設置定時執行就可以輕松實現啦
實現效果:
平時的工作中,真的有太多可以去自動化的任務,由于經驗受限這里不能一一舉例說明,只能盡量分享一些我遇到過或者聽說過的例子。
希望大家都越來越高效,邊偷懶邊完成工作~
如果你喜歡的話,請點個在看讓更多的人看到~
源碼下載
公眾號后臺回復關鍵詞:偷懶
作者:A字頭
責任編輯:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python在工作中怎么用_如何用python在工作中“偷懒”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql降级导入_mysql 升级和降
- 下一篇: python直方图的拟合_从一组数据py