python基础---->python的使用(三)
今天是2017-05-03,这里记录一些python的基础使用方法。世上存在着不能流泪的悲哀,这种悲哀无法向人解释,即使解释人家也不会理解。它永远一成不变,如无风夜晚的雪花静静沉积在心底。
Python的基础学习
一、python中函数作为参数
import math def add(x, y, f):
return f(x) + f(y) print(add(25, 9, math.sqrt)) # 8.0
二、python引用自定义模块
在同目录下面定义两个文件huhx.py和huhx5.py。其中huhx.py作为一个模块供huhx5.py使用。
- huhx.py文件内容如下:
# defined a module
username = "Linux" def sayMyName():
print("My name is ", username)
- huhx5.py文件内容如下:
import huhx huhx.sayMyName();
- 打印效果如下:

三、python文件的读写
# 文件的写,这一般用于写比较短的字符
with open('../file/huhx.xml', 'w', encoding='utf-8') as f:
f.write('您好, huhx!')
# 文件的读,这一般用于读取比较短的字符
with open('../file/huhx.xml', 'r', encoding='utf-8') as f:
print(f.read())
四、python中stmtp简单发送邮箱
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr)) from_addr = '****'
password = '*****'
to_addr = '******'
smtp_server = 'smtpcom.263xmail.com' msg = MIMEText('hello, my name is huhx.', 'plain', 'utf-8')
msg['From'] = _format_addr('huhx <%s>' % from_addr)
msg['To'] = _format_addr('linux <%s>' % to_addr)
msg['Subject'] = Header('subject info', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 465)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
如果发送的是html邮件,则将上述的msg改为如下:
msg = MIMEText('<html><body><h1>Hello</h1>' +
'<p>send by <a href="http://www.python.org">Python</a>...</p>' +
'</body></html>', 'html', 'utf-8')
如果需要发送附件:
import smtplib
from email import encoders from email.header import Header
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr)) from_addr = '****'
password = '*****'
to_addr = '***@qq.com'
smtp_server = 'smtpcom.263xmail.com' # 邮件对象:
msg = MIMEMultipart()
msg['From'] = _format_addr('hello <%s>' % from_addr)
msg['To'] = _format_addr('huhx <%s>' % to_addr)
msg['Subject'] = Header('subject info', 'utf-8').encode() # 邮件正文是MIMEText:
msg.attach(MIMEText('send with file...', 'plain', 'utf-8')) # 添加附件就是加上一个MIMEBase,从本地读取一个图片:
with open('huhx.png', 'rb') as f:
# 设置附件的MIME和文件名,这里是png类型:
mime = MIMEBase('image', 'png', filename='test.png')
# 加上必要的头信息:
mime.add_header('Content-Disposition', 'attachment', filename='test.png')
mime.add_header('Content-ID', '<0>')
mime.add_header('X-Attachment-Id', '')
# 把附件的内容读进来:
mime.set_payload(f.read())
# 用Base64编码:
encoders.encode_base64(mime)
# 添加到MIMEMultipart:
msg.attach(mime) server = smtplib.SMTP(smtp_server, 465)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
五、python中简单的html解析
from html.parser import HTMLParser class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag) def handle_endtag(self, tag):
print("Encountered an end tag :", tag) def handle_data(self, data):
print("Encountered some data :", data) parser = MyHTMLParser()
parser.feed('<html><head><title>Test</title></head>'
'<body><h1>Parse me!</h1></body></html>')
运行的结果如下
Encountered a start tag: html
Encountered a start tag: head
Encountered a start tag: title
Encountered some data : Test
Encountered an end tag : title
Encountered an end tag : head
Encountered a start tag: body
Encountered a start tag: h1
Encountered some data : Parse me!
Encountered an end tag : h1
Encountered an end tag : body
Encountered an end tag : html
六、python的文件解压缩
import tarfile def tarFile(
tar = tarfile.open("sample.tar", "w")):
for name in ["all_url.csv", "download_url.csv", "update.csv"]:
tar.add(name)
tar.close() def untarFile():
tar = tarfile.open("sample.tar", "r:tar")
for tarinfo in tar:
print(tarinfo.name, 'is', tarinfo.size) if __name__ == '__main__':
tarFile()
untarFile()
运行的结果如下:
all_url.csv is
download_url.csv is
update.csv is
友情链接
python基础---->python的使用(三)的更多相关文章
- Python基础学习笔记(三)运算符
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...
- python基础学习笔记(三)
序列概览 Python 包含6 种内建的序列,这里重点讨论最常用的两种类型:列表和元组. 列表与元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可以会更好用:而 ...
- Python基础--Python简介和入门
☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...
- python基础-python解释器多版本共存-变量-常量
一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: ...
- python基础--python基本知识、七大数据类型等
在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 (1)python应用领域 目前Python主要应用领域: 云计算: 云计算最火的语言, ...
- Python基础之【第三篇】
dir(): 默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的变量名 vars() 默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的变量名和值 reload() 将以前导入 ...
- Python基础学习参考(三):内置函数
一:内置函数 在第一篇文章中,我们简单的认识了一下print()函数和input()函数,也就是输入和输出,这些函数我们可以直接的调用,不要自己定义或者引入什么,对吧?想这样的函数就叫做内置函数.这里 ...
- python基础整理笔记(三)
一. python的几种入参形式:1.普通参数: 普通参数就是最一般的参数传递形式.函数定义处会定义需要的形参,然后函数调用处,需要与形参一一对应地传入实参. 示例: def f(a, b): pri ...
- python基础成长之路三
1,基础数据类型 总览 int :数字 用于计数,计算,运算等...1 , 2 , 3 , 100 , ... str :字符串 用户少量的数据储存,便于操作 "这就是字符串&qu ...
随机推荐
- Redis集群的操作
1.原始集群 1.1 启动Redis集群 [root@cent03 ~]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/ ...
- js 报错检查顺序
如上图所示错误列表: 处理步骤:检查顺序应从最后到前,并且先检查当面页面引用的文件(公共引用文件一般不会出错的) 如:at.nt.query方法检查错误开始 倒推
- EF学习和使用综合
一.(引)你必须知道的EF知识和经验 二.(引)EF学习和使用(七)EF性能优化篇 三.(引)采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延 ...
- JS jQuery json日期格式问题的办法
原生JS:Date对象详细参考 Date对象:基于1970年1月1日(世界标准时间)起的毫秒数 本文参考MDN做的详细整理,方便大家参考MDN 构造函数: new Date(); 依据系统设置的当前时 ...
- C# 校验Email(电子邮件)地址是否合法
用于校验给定的Email地址是否合法,只针对用于提供的Email地址的格式,不对其是否真实存在进行校验. /// <summary> /// 验证EMail是否合法 /// </su ...
- unity3d Matrix4x4列为主序
unity3d的矩阵一直用,但是之前都是测试着用的,效果虽然正确,但是一直没搞清楚它是行矩阵还是列矩阵 今天测试了下 Matrix4x4 mat4 = Matrix4x4.Perspective(30 ...
- Android图片编码机制深度解析(Bitmap,Skia,libJpeg)
问题 工作中遇到了Android中有关图片压缩保存的问题,发现这个问题还挺深,而且网上资料比较有限,因此自己深入研究了一下,算是把这个问题自顶至下全部搞懂了,在此记录. 相关的几个问题如下: 1.An ...
- mocha框架下,异步测试代码错误造成的问题----用例超时错误
今天用抹茶(mocha)做个测试,发现有一个测试项目总是超时: describe("DbFactory functions",function(){ it("query ...
- Redis面试题及答案整理
1.什么是Redis?简述它的优缺点? Redis的全称是:Remote Dictionary.Server,本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载 ...
- 11 go并发编程-上
其他编程语言并发编程的效果 并发编程可以让开发者实现并行的算法以及编写充分利用多核处理器和多核性能的程序.在当前大部分主流的编程语言里,如C,C++,java等,编写维护和调试并发程序相比单线程程序而 ...