码迷,mamicode.com
首页 > 其他好文 > 详细

基本用法:7《自学模块案例》

时间:2019-02-07 13:43:21      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:时光   ESS   编码   ice   对象   nbsp   bcd   功能   host   

 

7 《自学模块案例》

技术图片

 

1)【random模块】

 1 # 1.【random模块】
 2 import random  # 调用random模块
 3 a = random.random()  # 随机从0-1之间抽取一个小数
 4 b = random.randint(0,100)  # 随机从0-100之间抽取一个数字
 5 c = random.choice(abcdefg)     # 得到1个str,c=‘‘
 6 # choice 随机从字符串/列表/字典等对象中抽取一个元素(可能会重复)
 7 d = random.sample(abcdefg, 3)  # 得到1个list[],d=[]
 8 # sample 随机从字符串/列表/字典等对象中抽取多个不重复的元素
 9 f = [1, 2, 3, 4, 5, 6]
10 random.shuffle(f)          # “随机洗牌”,比如打乱列表
11 print(\n)

 

2)【csv模块 -Excel表格.csv-猫砂、收件人

 1 # 2.【csv模块 -Excel表格.csv】
 2 ## (1)猫砂
 3 import csv
 4 with open(sample/Excel.csv,r,newline=‘‘) as f:
 5     r=csv.reader(f)  # a按表格的行读取
 6     for i in r:
 7         print(i)
 8 ### 下面是读取内容:
 9 # [‘商品编号‘, ‘商品名称‘, ‘单价‘, ‘库存‘, ‘销量‘]
10 # [‘1‘, ‘猫零食‘, ‘12‘, ‘3313‘, ‘5164‘]
11 # [‘2‘, ‘普通猫粮‘, ‘33‘, ‘5055‘, ‘2231‘]
12 # [‘3‘, ‘猫粮四合‘, ‘187‘, ‘212‘, ‘334‘]
13 
14 ### 要存放2行
15 with open(sample/Excel.csv,a+, newline=‘‘) as f:
16  # with open(‘sample/Excel.csv‘,‘w+‘, newline=‘‘) as f:
17  # 写入方式w/a都可以,因为没有循环for
18     w=csv.writer(f)  # <class list>嵌套列表
19   # 按行写入
20     w.writerow([4, 猫砂, 25, 1022, 886])
21     w.writerow([5, 猫罐头, 18, 2234, 3121])
22 with open(sample/Excel.csv,r, newline=‘‘) as f:
23     h=csv.reader(f)  # <class list>嵌套列表
24     for i in h:
25         print(i)
26 
27 ## (2)写入、读取收件人
28 import csv
29 data=[[收件人,邮箱],[,702352870@qq.com],[,1427369427@qq.com]]
30 ## excel表格.csv文件写入要 列表嵌套
31 with open(sample/recipient.csv,w,newline=‘‘) as a:
32  # with open(‘sample/recipient.csv‘,‘a‘,newline=‘‘) as a:
33  # 如果是‘a‘则第一行就是空的??‘w‘就没有这个bug!!
34  # 因为有循环for,也算写入一行,没有输出就返回空行!!
35     b=csv.writer(a)  # 写入内容放入b
36     # 按行写入
37     for i in data:   # i=[‘收件人‘,‘邮箱‘]
38         b.writerow(i)
39 with open(sample/recipient.csv,r,newline=‘‘) as a:
40     c=csv.reader(a)  # 读取内容放入c
41     for i in c:
42         print(i)

 

3)【time模块 -时间戳】

技术图片

技术图片

 1 # 3.【time模块 -时间戳】
 2 import time
 3 input("欢迎使用“时间管理器”!请按enter继续")
 4 # 必须是input,不能是print,只要不按enter就一直等待
 5 with open(sample/time_record.txt,a) as f:
 6     task = input(你要做什么事情:)
 7     t = int(input(你要几分钟完成?1,2,3,4...:))
 8     time.sleep(1)
 9     a=input(此次任务信息:\ntask:%s\ntime:%dmin\n按enter开始计时%(task,t))
10     f.writelines(此次任务信息:\ntask:%s\ntime:%dmin\n%(task,t))
11     if a ==‘‘:
12         print(计时开始(s):)
13     sta=time.time()         # 时间戳time.time(),1548730796.4549906
14     start_time=time.strftime(%Y-%m-%d %H:%M:%S,time.localtime(sta))
15           # 墙上时间time.strftime(time.localtime(time.time())),比如2019-1-29
16 ## time.localtime(sta)  # 当地时间time.localtime(time.time()),非正式格式,运行如下:
17 ## time.struct_time(tm_year=2019,tm_mon=1,tm_mday=29,tm_hour=10,tm_min=59,tm_sec=56,tm_wday=1,tm_yday=29,tm_isdst=0)
18     for x in range(60*t,-1,-1):
19         daojishi=倒计时+str(x)+s
20         time.sleep(1)
21  ## 下面2行是输出一行,同时清理掉输出的内容:
22  ## print(daojishi,end=‘‘)
23  ## print(‘b‘* (len(daojishi)*2) ,end=‘‘,flush=True)
24  ## ‘b‘是【退格功能】的转义字符,退格(len(daojishi)*2)次,
25  ##  因为中文字符占2byte,字母数字就不*2,flush=True开启缓冲区
26     print("叮咚,time‘s up!")                  # 规定时长
27     b=input(你完成任务了吗?完成请按enter:)
28     if b==‘‘:
29         end=time.time()
30         end_time=time.strftime(%Y-%m-%d %H:%M:%S,time.localtime(end))
31         used_time=(end-sta)/60                   # 实际时长
32         time_range=start_time+——+end_time    # 2019-01-29 10:49:11——2019-01-29 10:49:35
33     record0=预计完成:+str(t)+min\n实际用时:+str(used_time)+min
34     record1=时间段:+time_range
35     f.writelines(record0+\n+record1)
36     print(record0+\n+record1)
37 print(愿被你善待的时光,予你美好的回赠。)

 

4)【stmplib /email模块 + MIMEText/Header函数 -写发QQ邮件】

 技术图片

C. 发一封完整邮件

 技术图片

 1 ## 1. 发一封完整邮件
 2 import smtplib  # 按住ctrl+点击smtplib出现模块解释
 3 # (1)链接服务器
 4 a = smtplib.SMTP(host,port)      # 默认TSL加密方式
 5 a = smtplib.SMTP_SSL(host,port)  # 若端口是SSL加密,请这样写代码。
 6                 # host是目标邮件的【服务器地址】,port是【端口=整数】
 7 # 若编码错误UnicodeDecodeError,就酱写server.connect(‘smtp.qq.com‘,465,‘utf-8‘)
 8 
 9 # (2)登录邮箱
10 a.login(account, password) # account:账户 password:授权码
11 
12 # (3)编译标题、正文、收件人,发件人昵称
13 from email.mime.text import MIMEText    # 纯文本正文内容
14 from email.mime.image import MIMEImage  # 图片
15 from email.mime.multipart import MIMEMultipart # 多形式组合
16 from email.header import Header         # 头部信息
17 
18 message=MIMEText(msg,type,chartset)
19 # msg:文本内容,a.text
20 # type:文本类型,默认为‘plain‘(纯文本)
21 # chartset:文本编码,中文“utf-8”
22 message[subject]=Header(subject,utf-8)
23 message[from]=Header(sender,utf-8)
24 message[to]=Header(to_addr,utf-8)
25 
26 # (4)发送,退出
27 a.sendmail(sender,to_addr,message.as_string())
28 # from_addr:邮件发送地址,就是上面的username=‘xxx.qq@com‘
29 # to_addr:邮件收件人地址,‘yyy.qq@com‘
30 # msg.as_string():为一个字符串类型
31 a.quit()

 

D. 发邮件【文件读写.txt.csv

 

 1 import smtplib,csv
 2 from email.mime.text import MIMEText
 3 from email.header import Header
 4 ### 1.链接服务器(地址+端口+加密方式)
 5 aaa=smtplib.SMTP_SSL(smtp.qq.com,465)
 6 
 7 ### 2.登录(.txt文件读取账户密码)
 8 with open(sample/QQ登录.txt,r) as a:
 9     b=a.readlines()     #[‘702352870@qq.com njzrpkumldghbfii 上好佳‘]
10     b=b[0].split( )  #[‘702352870@qq.com‘, ‘njzrpkumldghbfii‘, ‘上好佳‘]
11 account=b[0]    # 702352870@qq.com
12 passwords=b[1]  # njzrpkumldghbfii
13 sender=b[2]     # 上好佳
14 aaa.login(account,passwords)
15 
16 ### 3.读取收件人、正文,并编辑好
17 ## (1)写入
18 data=[[name,qq,subject,text],[,702352870@qq.com,今天,今天几号?],[,1427369427@qq.com,明天,明天几号?]]
19 ## excel表格.csv文件写入要 列表嵌套
20 with open(sample/recipient.csv,w,newline=‘‘) as a:
21  # with open(‘sample/recipient.csv‘,‘a‘,newline=‘‘) as a:
22  # 如果是‘a‘则第一行就是空的??‘w‘就没有这个bug!!
23  # 因为有循环for,也算写入一行,没有输出就返回空行!!
24     b=csv.writer(a)  # 写入内容放入b
25     # 按行写入
26     for i in data:   # i=[‘收件人‘,‘邮箱‘]
27         b.writerow(i)
28 
29 ## (2)读取
30 recipient0=[]     # 表格第1列-收件人…
31 subject0=[]       # 表格第2列-标题…
32 text0 = []        # 表格第3列-内容…
33 with open(sample/recipient.csv,r,newline=‘‘) as a:
34     c=csv.reader(a)  # 读取内容放入c
35     for i in c:      # 按行读取
36         recipient0.append(i[1])  # 表格第1列-收件人…
37         subject0.append(i[2])    # 表格第2列-标题…
38         text0.append(i[3])       # 表格第3列-内容…
39 recipient=recipient0[1:]  # 1 收件人:[‘702352870@qq.com‘, ‘1427369427@qq.com‘]
40 subject=subject0[1:]      # 2 主题:[‘今天‘, ‘明天‘]
41 text=text0[1:]            # 3 正文:[‘今天几号?‘, ‘明天几号?‘]
42 
43 ### 4. 编辑发送,退出
44 try:
45     for i in range(len(text)):   # 容易丢range()
46         msg=MIMEText(text[i],plain,utf-8)     # text
47         msg[subject]=Header(subject[i],utf-8) # subject
48         msg[from]=Header(sender,utf-8)       # from-account
49         msg[to]=Header(recipient[i],utf-8)    # to-recipient
50         aaa.sendmail(account,recipient[i],msg.as_string())
51         print(发送成功!撒花~)
52 except:
53     print(发送失败,请检查程序后重试~~)
54 aaa.quit()

 

 

 

5)【MyQR模块=动态二维码】

技术图片

技术图片

 1 from MyQR import myqr
 2 # import os
 3 myqr.run(
 4     words=happy newyear,  # str类型,链接or句子作为参数,中文??
 5  # 扫描二维码后,显示的内容,或是跳转的链接
 6  # 输入中文字符串会报错,怎么解决??
 7  # ValueError: Wrong words! Make sure the characters are supported!
 8     version=1,       # 整型, from 1 to 40  二维码边长
 9     level=H,       # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
10     picture=1.gif,       # str, 二维码背景图{‘.jpg‘, ‘.png‘, ‘.bmp‘, ‘.gif‘}
11     colorized=True,        # bool  黑白(False)还是彩色(True) 背景图颜色
12     contrast=1.0,    # float 图片对比度和亮度,1.0表示原始图片
13     brightness=1.0,  # float 图片亮度
14     save_name=11.gif,    # str, 生成二维码文件名
15     save_dir=sample  #str,输出路径
16     #save_dir=os.getcwd() #控制位置
17 )

 

基本用法:7《自学模块案例》

标签:时光   ESS   编码   ice   对象   nbsp   bcd   功能   host   

原文地址:https://www.cnblogs.com/lj-attitudes0303/p/10354663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!