首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python真好玩

管他天下千万事,闲来轻笑两三声

最近要统计每个人的上班工时,于是写了个python脚本自动统计工时并汇总之后通过邮件的方式发到邮箱里。这里总结一下用到的知识点。

urllib2

写过爬虫的应该知道这个库,一句话介绍就是:urllib2提供了一系列用于操作URL的功能。我用这个来获取登录企业微信的token和打卡信息。

get

importurllib2

url='xxx'

response=urllib2.urlopen(url)

printresponse.read()

{

"errcode":,

"errmsg":"ok",

"access_token":"akjfhkaljsdfhlkasjhdfl",

"expires_in":7200

}

可以使用eval将json数据格式转换成python的字典类型,示例代码:

importurllib2

TOKEN_URL='https://gettokenurl'

response=urllib2.urlopen(TOKEN_URL)

printeval(response.read())

'''output

{'access_token': 'dadakjhkj',

'expires_in': 7200,

'errcode': 0, 'errmsg': 'ok'}

'''

post

post麻烦一点,要构造body,header。

importurllib2

importjson

headers= {"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}

# 请求的body数据,里面内容根据你的url来确定,这里我是请求打卡数据所有有岂知时间等字段。

formdata= {

"opencheckindatatype":1,

"starttime":start_time,

"endtime":end_time,

"useridlist": []

}

request=urllib2.Request(CHECK_IN_URL,data=json.dumps(formdata),headers=headers)

response=urllib2.urlopen(request)

printeval(response.read())

smtplib,email

能自动获取打卡信息之后,需要做的就是将信息组织一下,然后自动发送邮件给我了。于是就用到了smtplib和email库。示例代码:

importsmtplib

fromemail.mime.multipartimportMIMEMultipart

fromemail.mime.textimportMIMEText

fromemail.headerimportHeader

# 用于发送邮件的邮箱

me="zhengdf936@163.com"

# 收件人

you='xiaoyu@what.com'

# 邮件标题

subject="邮件标题"

# 构建邮件内容,测试时不要在邮件标题或内容中出现test等字样,会被视为垃圾邮件而发送失败,别问我是怎么知道的

content="This is the content"

# 参数2是邮件content-type, 可以设置html(解析html代码进行显示)等,

msg=MIMEText(content,'text','utf-8')

msg['Subject'] =Header(subject,'utf-8')

msg['From'] =me

msg['To'] =you

server=smtplib.SMTP()

# 邮箱server,163邮箱为smtp.163.com

mail_host='smtp.163.com'

#mail_host = 'smtp-mail.outlook.com' # outlook server

# user必须与msg中发件人一致

mail_user=me

# 邮箱密码

mail_pass='password'

# 连接服务器

server.connect(mail_host,587)

# 使邮箱支持tls

server.ehlo()

server.starttls()

server.ehlo()

# 登录邮箱

server.login(mail_user,mail_pass)

# 发送邮件

server.sendmail(me,address,msg.as_string())

server.quit()

字典排序

之后又准备对数据进行一下排序,于是学习了一下字典的排序。

d= {'d':4,'a':1,'c':3,'b':2}

sorted_d=sorted(d.items(),key=lambdax:x[1])

printsorted_d

'''注意:字典其实是无序的,排序输出的是一个list

[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

'''

# 需要倒叙输出时,这样

sorted_d2=sorted(d.items(),key=lambdax:x[1],reverse=True)

printsorted_d2

'''

[('d', 4), ('c', 3), ('b', 2), ('a', 1)]

'''

Ok, so much for this.

If I should meet thee

若我会见到你,

After long years,

事隔经年。

How should I greet thee?--

我何以贺你,

With silence and tears.

以眼泪,以沉默。

——George Gordon Byron

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181015G26Q5W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券