python3

Python3学习笔记29-发送邮件

狂风中的少年 提交于 2020-02-18 16:36:21
email模块用来构造邮件,smtplib模块用来发送邮件。 以QQ邮箱为例 想要在代码中使用QQ邮箱发送邮件,需要先在QQ邮箱-设置-账户中,开启SMTP服务,然后生成授权码。在进行验证账号时,用生成的授权码替换密码 发送纯文字的邮件,需要使用 #!/usr/bin/python3 import smtplib from email.mime.text import MIMEText from email.header import Header sender = '2474xxxx8@qq.com' # 发件人邮箱 password = 'ryhnx****fybifj' # 发件人邮箱密码 addressed_eamil = '247xxxx48@qq.com' # 收件人邮箱 def mail(): try: msg = MIMEText('Python3邮件发送测试...','plain','utf-8') msg['From'] = Header('发件人','utf-8') msg['To'] = Header('收件人','utf-8') msg['Subject'] = Header('测试发送邮件','utf-8') server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,一般端口是25

python3-基础4

人盡茶涼 提交于 2020-02-18 16:35:12
字符编码 字符编码: 就是把人类的字符翻译成计算机能识别的数字 字符编码表: 就是一张字符与数字对应关系表 ascii gbk utf-8 unicode unicode ------> encode(utf-8) ------> bytes 转换 (内存中的编码转换成硬盘的编码,编码) bytes ------> decode('utf-8') ------> unicode 转换 (解码) 原则: 字符以什么格式编译的,就要以什么格式解码 python3 中的字符串分为两种 x='lalala' 存成 unicode y=x.encode('utf-8') 存成 bytes 文件处理 打开文件 f = open('a.txt' , 'r' , encoding = 'utf-8') #windos下用 GBK编码,Linux下用utf-8编码 #在r模式下,如果文件不存在,不会创建新文件 res = f.read() #读取a.txr,光标移动到文件末尾 print(res) print('第二次' , f.read()) # 光标已经移动到末尾,所以无法再读出文件 print(f.readline() , end='') #逐行读取,以空格结尾 print(f.readlines()) #读取文件所有行,组成一个列表 f.close() # 切记关闭已打开的文件 傻瓜式操作

python字符串编码

浪尽此生 提交于 2020-02-18 07:03:15
python 默认编码   python 2.x 默认的字符编码是 ASCII ,默认的文件编码也是 ASCII 。   python 3.x 默认的字符编码是 unicode ,默认的文件编码是 utf-8 。 中文乱码 问题   无论以什么编码在内存里显示字符,存到硬盘上都是 二 进制,所以编码不对,程序就会出错。   常见编码有 ascii 编码(美国), GBK 编码(中国), shift_JIS 编码(日本 ), unicode (统一编码)等。   需 要注意的是,存到硬盘上时是以何种编码存的,再从硬盘上读出来时,就必须以何种编码读,要不然就 会出现乱码问题 。   常见的编码错误的原因有 如下,出现乱码时,按照编码之前的关系,挨个排错就能解决问题。      python 解释器的默认编码 ;      Terminal 使用的编码 ;      python 源文件文件编码 ;     操作系统的语言设置 。   Python 支持中文的编码: utf-8 、 gbk 和 gb2312 。 uft-8 为 国际通用 , 常用有数据库、编写代码 。 gbk 如 windows 的 cmd 使用 。 编码转换   如果想要中国的软件可以正常的在美国人的电脑上实现,有下面两种方法:    让美国人的电脑都装上 gbk 编码    让你的软件编码以 utf-8 编码   

python3列表

。_饼干妹妹 提交于 2020-02-18 05:35:54
列表由一系列按特定顺序排列的元素组成。 用方括号[ ]表示列表,用逗号分隔其中的元素。 1、访问列表元素 (1)要访问列表元素,可指出列表的名称,再指出元素的索引。 例如print(cars[0]) (2)索引列表从0开始,而不是从1开始,即0对应列表的第一个元素,1对应列表的第二个元素; 2、修改列表元素 要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。 car[0]=123 3、在列表中添加元素 (1)在列表末尾添加元素,append(),用法:列表名.append(需要添加的元素) (2)在列表中插入元素,insert(),用法:列表名.insert(新元素的索引,新元素) (3)从列表中删除元素,使用del语句。用法:del 列表名[元素索引] (4)使用方法pop()删除元素。pop()就是从列表中弹出一个元素,并可将这个元素存储到一个变量,以便于使用。 例:popped_motorcycle=motorcycles.pop()。pop()默认弹出最后一个元素。若需要弹出其他位置的元素,需要指定元素索引,比如pop(1); (5)根据值删除元素,使用方法remove()。用法:列表名.remove(元素值) 4、使用方法sort()对列表进行 永久性排序。用法:列表名.sort()。sort按照字母顺序排列。 5、使用函数sorted(

python3列表、元组

て烟熏妆下的殇ゞ 提交于 2020-02-18 05:33:34
列表、元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。 列表中的每个元素都分配一个数字也就是它的位置,或叫索引,第一个索引是0,第二个索引是1,依此类推。 定义列表 name = ["wings","nauxu","xiaoming","tingting","!wings"] name1 = [1,2,3] 列表操作 切片 print(name[0]) #取出列表中第一个值 print(name[0:3]) #取出列表中前三个个值 print(name[:3]) #取出列表中前三个个值 print(name[-1]) #取出列表中最后一个值 print(name[-3:-1]) print(name[::2]) #每隔一个取出一个值 View Code 追加 name.append("xiaoxue") View Code 插入 name.insert(2,"最来的") View Code 修改 name[2] = "刚修改的" View Code 删除 name.remove("wings") del name[2] #python内置的方法 name.pop() #随机删除一个 name.pop(3) #指定删除 name.clear() #清空列表 del name #删除列表 View Code 查找 name = name

python3中的configparser模块

时间秒杀一切 提交于 2020-02-18 00:42:21
文章目录 前言 安装方法 ini文件格式如下 举例说明用法 前言 由于Python的开发任务中需要用到读取ini文件,然后对configparser模块进行学习并记录如下笔记(我使用的是3.7.3)。 安装方法 pip install configparser ini文件格式如下 [section] name = value name:value 用= :来赋值 举例说明用法 1.我们来建立一个ini文件;代码如下: # -*- coding: utf-8 -*- import configparser config = configparser . ConfigParser ( ) file = 'E:/code/python/Config/config.ini' config . read ( file ) config . add_section ( 'login' ) config . set ( 'login' , 'username' , 'harry' ) config . set ( 'login' , 'password' , '88888' ) with open ( file , 'w' ) as configfile : config . write ( configfile ) 以上add_section是来增加section

python3爬取东方财富股东户数2013-2019年数据

我只是一个虾纸丫 提交于 2020-02-17 23:59:44
!/usr/bin/env python - - coding:utf-8 - - import re import csv import time import random import requests import json from bokeh.models import pd from requests import session class spider_DongFangCaiFu(object): def init (self): #初始化需要记录断点数据 self.sync_log_dict = { #分类url "category_num": 0, #页数url "page_num": 1, #总页数 "total_page":100, } # 日期 self.start_date_list=[ "2019-12-31", "2018-12-31", "2017-12-31", "2016-12-31", "2015-12-31", "2014-12-31", "2013-12-31", ] # 详情解析 def parse_detail(self): for one_date_index in range(self.sync_log_dict["category_num"], 2): # 设置时间间隔 time.sleep(random.random())

Python3 多线程

北战南征 提交于 2020-02-17 15:30:09
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。 指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。 线程可以被抢占(中断)。 在其他线程正在运行时,线程可以暂时搁置(也称为睡眠) -- 这就是线程的退让。 线程可以分为: 内核线程: 由操作系统内核创建和撤销。 用户线程: 不需要内核支持而在用户程序中实现的线程。 Python3 线程中常用的两个模块为: _thread threading(推荐使用) thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在

解决pip install package时Fatal error in launcher: Unable to create process using '\"e:\\python36\\python3.exe\" \"E:\\python36\\Script\\pip3.exe\"问题

旧巷老猫 提交于 2020-02-17 15:14:16
pip 运行报错: 关于:Fatal error in launcher: Unable to create process using '"e:\python36\python3.exe" "E:\python36\Script\pip3.exe"问题 由于安装tensorflow,下载 了Anaconda2环境,自此python有了2.7 和3.6两个版本,同时在tensorflow虚拟环境中安装了python3.5版本用来运行tensorflow。 今天本想安装pytest测试框架,发现pip 运行不了,一直出现上述问题! 问题阐述:    上述错误的意思是“在python36文件下找不到python3.exe这个执行文件,或是在python36\Script 文件下找不到pip3.exe这个文件”    (个人教训:但我们的代码出现报错信息时一定要先自己理解一下报错含义,因为如果我们直接上百度查询时一般不会有原问题,只是大致意思相同,要学会辨别和套用方法!!!) 解决过程:    我先查询了一下环境变量,如图所示(个人安装不同,请理解大致意思,按实际情况操作!):   接着查看两个版本的python解释器所安装的位置,如下图所示: 发现在python36\ Script\ 下pip3.exe 存在,但是 在 python36\ 下 没有python3.exe

python3正则表达式

余生长醉 提交于 2020-02-17 14:41:55
re.match函数 re.match函数尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 函数语法: re.match(pattern, string, flags=0) 函数参数说明: 参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配 匹配成功re.match方法返回一个匹配的对象,否则返回None。 可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。 示例 import re line = "Cats are smarter than dogs" # .* 表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符 matchObj = re . match ( r '(.*) are (.*?) .*' , line , re . M | re . I ) if matchObj : print ( "matchObj.group() : " , matchObj . group ( ) ) print ( "matchObj.group(1) : " , matchObj . group ( 1 ) ) print ( "matchObj.group(2) : " , matchObj .