python foundation
文章平均质量分 75
zyckhuntoria
图形图像
展开
-
文本文件中数据匹配 ,将不匹配的数据输出到另一文本文件
import refile_object = open('D:/test/text.txt','r')f=open("D:/test/sltext.txt","a+")reg = re.compile(r'(.+g)(\s)(.+)')try: for line in file_object: if not ('-' in reg.match(line).gr...原创 2018-09-02 17:06:11 · 1120 阅读 · 0 评论 -
python笔记:常用内建模块—XML
一、DOM vs SAX操作XML有两种方法:DOM和SAX。DOM会把整个XML读入内存,解析为树,因此占用内存大,解析慢,优点是可以任意遍历树的节点。SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。优先考虑SAX,因为DOM实在太占内存二、使用SAX解析XML需准备好这3个函数:start_element,end_element和char_data,就可开始解析XM...原创 2018-07-13 23:26:00 · 739 阅读 · 0 评论 -
python笔记:正则表达式
一、精确匹配\d匹配一个数字,如'00\d'可以匹配'007',但无法匹配'00A';\w匹配一个字母或数字,如'\d\d\d'可以匹配'010','\w\w\d'可以匹配'py3';.可以匹配任意字符 ,如 'py.'可以匹配'pyc'、'pyo'、'py!'等等。二、匹配变长的字符*表示任意个字符(包括0个)+表示至少1个字符?表示0个或1个字符{n}表示n个字符{n,m}表示n-m个字符如\...原创 2018-07-07 23:57:51 · 455 阅读 · 0 评论 -
python笔记:常用内建模块—urllib
urllib提供了一系列用于操作URL的功能。一、Get原创 2018-07-13 13:29:57 · 212 阅读 · 0 评论 -
python笔记:进程和线程—分布式进程 (补充)
对上篇文章进行补充,廖老师所给出的代码在linux上运行正确,但是在windows系统上会提示错误。本文主要综合网上所给的方法对代码进行修改,以正确运行。一、task_master.py1.1 廖老师所给出代码# task_master.pyimport random, time, queuefrom multiprocessing.managers import BaseManager...原创 2018-07-06 21:21:35 · 522 阅读 · 0 评论 -
python笔记:常用内建模块—contextlib
读写文件这样的资源要特别注意,必须在使用完毕后正确关闭它们。正确关闭文件资源的一个方法是使用try...finally:try: f = open('/path/to/file', 'r') f.read()finally: if f: f.close()with语句简化上述代码:with open('/path/to/file', 'r') as f:...原创 2018-07-12 23:51:01 · 195 阅读 · 0 评论 -
python笔记:常用内建模块—itertools
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。itertools模块提供的全部是处理迭代功能的函数,它们的返回值不是list,而是Iterator,只有用for循环迭代的时候才真正计算。一、itertools提供的count()迭代器用于打印出自然数序列>>> import itertools>>> natuals = ite...原创 2018-07-12 23:15:25 · 316 阅读 · 1 评论 -
python笔记:常用内建模块—hmac
根据上一篇,如果salt是我们自己随机生成的,通常我们计算MD5时采用md5(message + salt)。但实际上,把salt看做一个“口令”,加salt的哈希就是:计算一段message的哈希时,根据不通口令计算出不同的哈希。要验证哈希值,必须同时提供正确的口令。这实际上就是Hmac算法:Keyed-Hashing for Message Authentication。它通过一个标准算法,在...原创 2018-07-12 22:14:31 · 371 阅读 · 0 评论 -
python笔记:常用内建模块—hashlib
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(...原创 2018-07-12 21:19:39 · 181 阅读 · 0 评论 -
python笔记:常用第三方模块—Pillow
目录一、安装Pillow二、操作图像2.1图像缩放操作2.2模糊效果三、绘图PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了,由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用...原创 2018-07-18 22:43:55 · 938 阅读 · 0 评论 -
python笔记:常用第三方模块—requests
目录一、安装requests二、使用requests2.1通过GET访问一个页面2.1.1无参数的URL2.1.2带参数的URL2.1.3指定超时2.2通过post访问一个页面2.1.1无参数的URL2.1.2有参数的URL2.1.3指定超时2.3上传文件2.4传入json参数2.5encoding属性查看编码2.6content属性获得by...原创 2018-07-19 23:21:54 · 255 阅读 · 0 评论 -
python笔记:网络编程—UDP编程
目录一、服务器1.1 服务器绑定端口二、客户端2.1 创建基于UDP的Socket三、全部代码四、运行TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据。相对TCP,UDP则是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包。但是,能不能到达就不知道了。虽然用UDP传输数据不可靠,但它的优点是和TC...原创 2018-07-25 21:10:12 · 178 阅读 · 0 评论 -
python笔记:常用内建模块—HTMLParser
我们要编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓下来,第二步就是解析该HTML页面,看看里面的内容到底是新闻、图片还是视频。python提供了HTMLParser来非常方便地解析HTML。一、使用HTMLParser解析HTML内容的步骤from html.parser import HTMLParserfrom html.entities import name2codepoint...原创 2018-07-14 23:43:24 · 210 阅读 · 0 评论 -
记录:2018/9/4
# _*_ coding:utf-8_*_#遍历dirname="D:\\"下的所有文件,找出image_name图片def findKeyFile(dirname,image_name): global image_srcpath global judge_path for r,d,f in os.walk(dirname,topdown=False): ...原创 2018-09-04 15:52:03 · 86 阅读 · 0 评论 -
python笔记:电子邮件—SMTP发送邮件(纯文本文件)
一、SMTP作用阶段图示编写MUA把邮件发到MTA(MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。),邮件客户端软件在发邮件时,会让你先配置SMTP服务器,也就是你要发到哪个MTA上。假设你正在使用163的邮箱,你就不能直接发到新浪的MTA上,因为它只服务新浪的用户,所以,你得填163提供的S...原创 2018-08-10 16:57:11 · 2998 阅读 · 0 评论 -
python笔记:网络编程—TCP编程(客户端)
目录 一、网络通信二、Python网络编程的概念三、TCP编程3.1步骤一、网络通信自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,...原创 2018-07-22 22:55:20 · 479 阅读 · 1 评论 -
python笔记:电子邮件(前言)
一、电子邮件收发过程一封电子邮件的旅程就是:发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人注释:MUA:Mail User Agent——邮件用户代理,假设我们自己的电子邮件地址是me@163.com,对方的电子邮件地址是friend@sina.com(注意地址都是虚构的哈),...原创 2018-07-26 23:13:32 · 1565 阅读 · 0 评论 -
python笔记:图形界面
目录一、Tkinter二、第一个GUI程序三、输入文本程序Python支持多种图形界面的第三方库,包括: Tk wxWidgets Qt GTK 等但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。一、Tkinter我们编写的P...原创 2018-07-21 22:40:40 · 437 阅读 · 2 评论 -
python笔记:常用第三方模块—virtualenv
目录一、安装virtualenv二、使用vitualenv创建虚拟环境2.1步骤 2.1.1创建目录 2.1.2使用 virtualenv 的命令来创建虚拟环境三、使用virtualenv3.1步骤3.1.1进入到虚拟环境目录中的 Scripts 目录,输入activate3.1.2正常安装各种第三方包,并运行python命令...原创 2018-07-21 15:48:52 · 790 阅读 · 0 评论 -
python笔记:常用内建模块—HTMLParser(细节补充)
一、HTMLParser中几种handler_开头的函数HTMLParser是python用来解 析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它主要的用户回调函数的命名都是以handler_开头的,都是HT...原创 2018-07-17 00:15:21 · 1015 阅读 · 0 评论 -
python笔记:常用第三方模块—psutil
目录一、安装psutil二、使用psutil2.1获取CPU相关信息2.1.1获取cpu信息2.1.2统计CPU的用户/系统/空闲时间2.1.3实现类似top命令的CPU使用率2.2获取内存相关信息2.2.1使用psutil获取物理内存和交换内存信息 2.3获取磁盘信息 2.3.1获取网络读写字节/包的个数 ...原创 2018-07-20 22:16:06 · 1012 阅读 · 0 评论 -
python笔记:常用第三方模块—chardet
目录一、安装chardet二、使用chardet2.1对bytes检测编码2.2对GBK编码的中文检测编码2.3对UTF-8编码检测编码2.4对日文检测编码 字符串编码一直是令人非常头疼的问题,尤其是我们在处理一些不规范的第三方网页的时候。虽然Python提供了Unicode表示的str和bytes两种数据类型,并且可以通过encode()和decode()方法...原创 2018-07-20 15:18:47 · 5730 阅读 · 0 评论 -
python笔记:python基础—使用list和tuple
目录 一、可变对象list1.1用len()函数可以获得list元素的个数1.2用索引访问list中每一个位置的元素1.3添加元素1.3.1使用append()追加元素到末尾1.3.2 把元素插入到指定的位置,比如索引号为1的位置1.4删除元素1.4.1 用pop()方法删除list末尾的元素1.4.2 删除指定位置的元素,用pop(i)方法,其中i是索引位...原创 2018-07-18 20:05:02 · 152 阅读 · 0 评论 -
python笔记:常用内建模块—struct
Python提供了一个struct模块来解决bytes和其他二进制数据类型的转换。一、struct的pack函数把任意数据类型变成bytes>>> import struct>>> struct.pack('>I', 10240099)b'\x00\x9c@c'解释说明:pack的第一个参数是处理指令,'>I'的意思是:>表示字节顺序是bi...原创 2018-07-12 17:21:28 · 218 阅读 · 0 评论 -
python笔记:错误、调试和测试—文档测试
一、doctestPython内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试。doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确。只有测试异常的时候,可以用...表示中间一大段烦人的输出。二、步骤2.1 添加注释 ''' Simple dict but also support access as x.y style. &...原创 2018-06-30 12:58:15 · 198 阅读 · 0 评论 -
python笔记:错误、调试和测试-调试
一、用print() 二、用断言(assert) 三、用logging 四、pdb 五、pdb.set_trace() 一、用print()1.1 步骤:1.1.1 保存文件为debugtest.py,注意中间加入了print()1.1.2在命令提示符下运行,可以看到打印的变量值1.2 缺点:需要返回进行删除print()二、用断言(assert)2.1 步骤2.1.1 debugtest.py修...原创 2018-06-29 14:11:38 · 219 阅读 · 0 评论 -
python笔记:高级特性-生成器
一、什么是生成器在python中,这种一边循环一边计算的机制,称为生成器:generator二、创建生成器的方法2.1把一个列表生成式的[ ]改成( ),就创建了一个generator>>> L = [x * x for x in range(10)]>>> L[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]>>>...原创 2018-06-10 15:12:05 · 205 阅读 · 0 评论 -
python笔记:高级特性-迭代
目录一、判断是否为迭代对象 二、对dict进行迭代的三种情况2.1对dict中的key进行迭代2.2对dict中的value进行迭代2.3对dict中的key,value进行迭代三、对字符串进行迭代四、对list进行迭代 五、练习 迭代 iterable ( 顺便一提..iterature文学)一、判断是否为迭代对象使用collections模块的Ierable类型进行判断,方法如下from ...原创 2018-06-09 20:16:01 · 164 阅读 · 0 评论 -
python笔记-函数式编程-高阶函数-map/reduce
之后再详细补充先放题目:原创 2018-06-13 21:14:06 · 167 阅读 · 0 评论 -
python笔记:定义函数
1、自定义函数存放在外部文件中的调用方式2、空函数3、参数检查4、返回值1、自定义函数存放在外部文件中的调用方式如果将函数myabs()定义在外部文件abstest.py中,在该文件的当前目录下启动python解释器,用from abstest import my_abs,就可以使用该函数了2、空函数表示该函数什么也不做def myabs1(): pass3、参数检查(1)情况一、参数个数不...原创 2018-06-06 20:47:01 · 176 阅读 · 0 评论 -
python笔记:高级特性-切片
一、应用:取一个list或tuple的部分元素二、对list进行连续切片操作初始值:比如定义一个list并赋值如下:>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']3.1直接输出L>>> L[:] L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']3.1正数切...原创 2018-06-12 21:57:22 · 297 阅读 · 0 评论 -
python:不可变对象与可变对象
一、不可变对象str,可变对象 list二、对于可变对象,对可变对象进行操作,可变对象内部的内容是会变化的举例:对list进行操作>>>a=['c','b','a']>>>a.sort()>>>a['a','b','c']三、对于不可变对象操作,其对象内部的内容是不会变化的举例:对str进行操作>>>a='abc'>&g原创 2018-05-29 20:00:05 · 333 阅读 · 0 评论 -
python笔记:dict与set
dict一、写一个dict,是name-value形式d = {'zhangsan':100,'wanger': 95, 'lisi': 85}二、对dict的value进行操作1、查找zhangsan的值:d['zhangsan']2、对dict添加值:d['wangwu']=753、覆盖原dict中的值:d['lisi']=65三、对dict中的key进行操作1...原创 2018-05-28 21:58:39 · 605 阅读 · 0 评论 -
python笔记:IO编程-操作文件和目录
目录一、查看操作系统及详细的系统信息1.1 查看操作系统1.2查看详细的系统信息二、查看环境变量、获得某个环境变量的值2.1查看环境变量2.2获得某个环境变量的值三、操作文件和目录3.1 查看、创建、删除目录3.1.1 查看当前目录的绝对路径的函数是放在os.path模块中,操作如下3.1.2 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来的函数...原创 2018-07-01 18:47:46 · 330 阅读 · 0 评论 -
python笔记:常用内建模块—datetime
datetime是Python处理日期和时间的标准库。一、获取当前日期和时间注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。如果仅导入import datetime,则必须引用全名datetime.datetime。二、获取指定日期和时间直接用参数构造一个datetime...原创 2018-07-08 23:03:28 · 342 阅读 · 0 评论 -
python笔记:IO编程-序列化
一、序列化和反序列化序列化定义:我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。序列化作用:序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickl...原创 2018-07-02 13:41:27 · 254 阅读 · 0 评论 -
python笔记:进程和线程—分布式进程
一、分布式进程Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个进程中,依靠网络通信。由于managers模块封装很好,不必了解网络通信的细节,就可以很容易地编写分布式多进程程序。二、举例实...原创 2018-07-05 22:52:25 · 357 阅读 · 0 评论 -
python笔记:网络编程—TCP编程(服务器)
目录一、创建服务器响应1.1步骤1.2完整代码1.3运行 服务器进程首先要绑定一个端口并监听来自其他客户端的连接。如果某个客户端连接过来了,服务器就与该客户端建立Socket连接,随后的通信就靠这个Socket连接了。所以,服务器会打开固定端口(比如80)监听,每来一个客户端连接,就创建该Socket连接。由于服务器会有大量来自客户端的连接,所以,服务器要能够区分一个Soc...原创 2018-07-23 22:58:31 · 324 阅读 · 0 评论 -
python笔记:常用内建模块—xml(习题)
练习请利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报:https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=xml参数woeid是城市代码,要查询某个城市代码,可以在wea...原创 2018-07-17 23:17:29 · 351 阅读 · 0 评论 -
python笔记:常用内建模块—HTMLParser(习题)
本篇主要对HTMLParser练习题目给出第二种方法解答,第一种详细见上篇。《python笔记:常用内建模块—HTMLParser(细节补充)》https://blog.csdn.net/zyckhuntoria/article/details/81056346,主要方法是首先利用handle_starttag()函数寻找标签,当遇到要寻找的标签,将变量self.ttag根据不同标签赋予不...原创 2018-07-17 19:59:16 · 180 阅读 · 0 评论