
python
睿里睿气
全栈工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python连载61-tkinter三种布局
一、pack布局举例#pack布局案例import tkinterbaseFrame = tkinter.Tk()#以下代码都是创建一个组件,然后布局btn1 = tkinter.Button(baseFrame,text="A")btn1.pack(side=tkinter.LEFT,expand=tkinter.YES,fill=tkinter.Y)btn2 = tkinter...原创 2020-01-04 00:21:08 · 441 阅读 · 0 评论 -
Python连载60-Tkinter布局、按钮以及属性详解
一、Tkinter1.组件的大致使用步骤(1)创建总面板(2)创建面板上的各种组件;i.指定组件的父组件,即依附关系;ii.利用相应的属性对组件进行设置;iii.给组件安排布局。(3)同步骤2相似,创建好多个组件;(4)最后,启动总面板的消息循环import tkinterbase = tkinter.Tk()base.wm_title("Label Test")#负责标题l...原创 2019-12-30 00:07:00 · 379 阅读 · 0 评论 -
Python连载59-HTTP首部字段和消息头,Thinker简介
一、首部字段或者消息头1.下面几个类型都是请求的:User-Agent:关于浏览器和它平台的消息,如Mozilla5.0Accept:客户端能处理的页面的类型,如text/htmlAccept-Charset:客户端可以接受的字符集,如unicode-1-1Accept-Encoding:客户端能处理的页面编码方式,如gzipAccept-Language:客户端能处理的自然语言,如e...原创 2019-12-25 00:12:54 · 405 阅读 · 0 评论 -
Python连载58-http协议简介
一、http协议实战1.URL(Uniform Resource Located)(1)使用FFTP的URL,例如:ftp://rtfm.mit.edu(2)使用HTTP的URL,例如:http://www.baidu.com2.HTTP工作原理(1)浏览器分析超i链接中的URL(2)浏览器向DNS请求解析网站的IP地址(3)DNS将解析出的IP地址返回浏览器(4)浏览器与服务器建...原创 2019-12-21 00:27:41 · 210 阅读 · 0 评论 -
Python连载57- 邮件头和主题、解析邮件
一、添加邮件头,抄送等信息1.mail[“From”]表示发送者信息,包括姓名和邮件2.mail[“To”]表示接收者信息,包括姓名和邮件地址3.mail[“Subject”]表示摘要或者主题信息from email.mime.text import MIMETextfrom email.header import Headermsg = MIMEText("Hello world"...原创 2019-12-13 00:19:46 · 2906 阅读 · 0 评论 -
Python连载56-发送带有附件、正文为HTML的邮件
一、HTML格式怎么发送右键1.准备HTML代码作为内容2.把邮件的subtype设置为html3.发送4.举个例子:自己发给自己一个HTML格式的文件from email.mime.text import MIMETextmain_content = """ <!DOCTYPE html> <html lang = "en" ...原创 2019-12-09 00:26:24 · 727 阅读 · 1 评论 -
Python连载55-Mail编程
一、电子邮件的历史1.起源:1969 Lenoard K. 教授发给同事的“LO”1971 美国国防部自主的阿帕网(Arpanet)的通讯机制通讯地址里用@1987年中国的第一份电子邮件“Across the Great Wall we can reach every corner in the world"2.管理程序Euroda使邮件普及,Netscape,outlook,fo...原创 2019-12-03 00:27:59 · 1220 阅读 · 0 评论 -
Python连载54-FTP编程
一、FTP工作流程1.客户端链接远程主机上的FTP服务器2.客户端输入用户名和密码(或者“anonymous”和电子邮件地址)3.客户端和服务器进行各种文件传输和信息查询操作4.客户端从远程FTP服务器退出,结束传二、FTP文件表示1.分三段表示FTP服务器上的文件2.HOST:主机地址,类似于ftp.mozilla.org,以ftp开头3.DIR:目录,表示文件所在本地的地址,例...原创 2019-11-28 00:06:33 · 192 阅读 · 0 评论 -
Python连载53-UDP、TCP、FTP编程实例
一、服务器程序要求永远运行,一般用死循环来处理1.服务器改造版本V03(主程序原封不动,这里只修改了运行的程序)if __name__ == "__main__": while True: try: print("Start Server") serverFunc() print("End Serv...原创 2019-11-25 00:08:07 · 155 阅读 · 0 评论 -
Python连载52-SOCKET编程示例
一、UDP编程1.客户端Client:发起访问的一方。2.服务器端3.server段编程(1)建立socket,socket是负责具体通信的一个实例(2)绑定,为创建的socket指派固定的端口和IP地址(3)接受对方发送内容(4)给对方发送反馈,此步骤为非必须步骤4.Client端编程(1)建立通信的socket(2)发送内容到指定服务器(3)接受服务器给定的反馈内容5....原创 2019-11-20 00:21:01 · 152 阅读 · 0 评论 -
Python连载51-网络编程基础知识
一、网络编程1.网络、网络协议(一套规则)2.网络模型:(1)七层模型-七层物理层(比如网线、锚)、数据链路层(比如电压电流)、网络层、传输层、会话层、表示层、应用层(我们的活动基本都在这一层)(2)四层模型链路层、网络、传输层、应用层(3)每一层都有相应的协议负责交换信息或者协同工作(4)TCP/IP协议族(5)IP地址:负责在网络上唯一定位一个机器i.IP地址分为ABCD类...原创 2019-11-16 00:23:24 · 122 阅读 · 0 评论 -
Python连载50-贪婪匹配、XPath介绍
一、贪婪和非贪婪1.贪婪:尽可能多的匹配,(*)表示贪婪匹配2.非贪婪:找到符合条件的最小内容即可,(?)表示非贪婪3.正则默认使用贪婪匹配import retitle = u"<div>name</div><div>age</div>"p1 = re.compile(r"<div>.*</div>")#贪婪模式...原创 2019-11-12 00:40:53 · 203 阅读 · 0 评论 -
Python连载49-正则举例
一、re举例import re#查找数字p = re.compile(r"\d+")#在字符串“ongahjeuf125”中及逆行查找,按照规则p指定的正则进行查找m = p.match("ong125fdsgdsf48515",3,20)#后面的参数序号3到6的搜索范围print(m)#上述代码说明#1.match可以输入参数表示起始位置#2.查找到的结果只包含一个,表示第一次...原创 2019-11-10 00:00:58 · 116 阅读 · 0 评论 -
Python连载48-正则表达式(中)
一、正则的写法:. (点好) :表示任意一个字符,除了\n,比如查找所有的一个字符.[] :匹配中括号中列举的任意字符,比如[L,Y,0], LLY, Y0, LIU\d :任意一个数字\D :除了数字都可以\s :表示空格,tab键\S :除了空白符号\w :单词字符,就是a-z,A-Z,0-9,_\W :除了单词字符:表示前面的内容重复零次或者多次:表示前面内容至少出...原创 2019-11-06 00:36:32 · 148 阅读 · 0 评论 -
Python连载47-json文件、正则表达式初步
一、在线工具1.https://www.sojson.com/2.http://www.w3cshool.com.cn/json/3.http://www.runoob.com/json/json-tutorial.html二、JSON(JavaScriptObjectNotation)1.json格式是一个键值对形式的数据集(1)key:字符串(2)value:字符串,数字,列表,j...原创 2019-11-01 00:10:35 · 175 阅读 · 0 评论 -
Python连载46-XML文件修改创建
一、XML文件写入1.更改(1)ele.set:修改属性(2)ele.remove:删除元素。(3)ele.append:添加子元素。我们举个例子并且使用新建的XML和新学的方法import xml.etree.ElementTree as ettree = et.parse(r"D30_4_XmlSchool.xml")root = tree.getroot()#拿到根元素的对...原创 2019-10-29 00:07:52 · 167 阅读 · 0 评论 -
Python连载45-XML解析(使用minidom和etree分别示例)
一、我们对XML的读取进行一波演示import xml.dom.minidom#负责解析xml文件的包from xml.dom.minidom import parse#使用minidom打开xml文件DOMTree = xml.dom.minidom.parse("D30_1_XmlNameSpace.xml")print(DOMTree)#将该XML文件定义为一个对象#得到文档...原创 2019-10-26 00:22:43 · 269 阅读 · 0 评论 -
Python连载44-XML其他注意点
一、XML文件注意点1.内容中不能出现尖括号例如:下面是不合法的<grade>成绩<90</grade>解决方案:使用实体引用,可以理解为转义<grade>成绩&st;90</grade> #<代表小于号,>代表大于号2.另一种方法:把含有保留字符的部分放在CDATA块内部,CDATA块把内...原创 2019-10-23 00:10:08 · 241 阅读 · 0 评论 -
Python连载43-current中的map函数、xml文件
一、current中的map函数1.map(fn,*iterable,timeout=None)(1)跟map函数相类似(2)函数需要异步执行(3)timeout代表超时时间(4)map和submit使用一个就可以import time,reimport os,datetimefrom concurrent import futuresdata = ['1','2']def wa...原创 2019-10-19 13:22:32 · 443 阅读 · 0 评论 -
Python连载42-异步协程函数
一、 asyncio1.python3.4开始引入标准库之中,内置对异步io的支持2.asyncio本身是一个消息循环3.步骤:(1)创建消息循环(2)把协程导入(3)关闭4.举例:import threading#引入异步io包import asyncio#使用协程@asyncio.coroutinedef hello(): print("Hello Worl...原创 2019-10-16 00:59:38 · 174 阅读 · 0 评论 -
Python连载41-yield from详解、委派生成器
一、1.yield from(1)调用协程为了得到返回值,协程必须正常终止(2)生成器正常终止会发出StopIteration异常,异常对象的value属性保存返回值。(3)yield from从内部捕获StopIteration异常我们举个例子def gen(): for c in "AB": yield c#list直接用生成器作为参数print(li...原创 2019-10-12 00:18:13 · 281 阅读 · 0 评论 -
Python连载35-死锁问题以及解决方式
一、死锁问题例子import threadingimport timelock_1 = threading.Lock()lock_2 = threading.Lock()def func_1(): print("func_1 starting......") lock_1.acquire()#我先占上lock_1 print("func_1 申请了 loc...原创 2019-09-05 00:49:14 · 409 阅读 · 0 评论 -
Python连载34-信息队列
一、生产者消费者模型1.一个模型。可以用来搭建消息队列;queue是一个用来存放变量的数据结构,特点是:先进先出import threadingimport timeimport queueclass Producer(threading.Thread): def run(self): global queue count = 0 ...原创 2019-09-04 23:28:11 · 95 阅读 · 0 评论 -
Python连载8-datetime包函数介绍
一、datetime包(上接连载7内容)1.函数:datetime(1)用法:输入一个日期,来返回一个datetime类(2)格式:datetime.datetime(年,月,日,hour=,minute=,second=)其中hour,minute,second可选(3)附加类方法:today():返回本地当前时间now():返回本地当前时间utcnow():返回本地当前时间f...原创 2019-06-11 00:37:51 · 127 阅读 · 0 评论 -
Python连载36-线程数量限制、Timer、可重入锁
一、允许一个资源最多由几个线程同时进行命令行:threading.Semaphore(个数)代表现在最多有几个线程可以进行操作import threadingimport time#参数定义了最多几个线程可以使用资源semaphore = threading.Semaphore(3)#这里就是指最多有三个线程可以进行操作def func(): if semaphore.acq...原创 2019-09-09 00:14:00 · 369 阅读 · 0 评论 -
Python连载37-多进程、进程子类、进程父子id
一、线程替代方案1.subprocess(1)完全跳过线程,使用进程(2)是派生进程的主要替代方案(3)python2.4后引入2.multiprocessing(1)使用threading接口派生,使用子进程(2)允许为多核或者多CPU派生进程,接口很threading非常相似(3)python2.63.concurrent.futures(1)新的异步执行模块(2)人物级...原创 2019-09-13 00:26:37 · 221 阅读 · 0 评论 -
Python连载38-协程、可迭代、迭代器、生产者消费者模型
一、生产者消费者模型import multiprocessing from time import ctime def consumer(input_q): print("Into consumer:",ctime()) while True: #处理项 item = input_q.get() print("pull",item,...原创 2019-09-19 00:53:36 · 117 阅读 · 0 评论 -
Python连载39-生成器、next函数、yield返回值
一、生成器1.定义(generator):一边循环一边计算下一个元素的机制/算法2.满三个条件(1)每次调用都能产生出for循环需要的下一个元素(2)如果达到最后一个后,能够爆出StopIteration异常(3)可以被next函数调用3.如何生成一个生成器(1)直接使用l = [x*x for x in range(5)]#放在中括号中就是列表生成器g = (x*x for x...原创 2019-09-24 00:24:42 · 260 阅读 · 0 评论 -
Python连载40-协程定义及状态、send语句、yield用法
一、协程1.历史进程:(1)3.4引入协程,用yield来实现(2)3.5引入协程语法(3)实现协程比较好的包有asyncio,tornado,gevent2.定义:协程是为非抢占式多任务产生子程序的计算机程序组件,协程允许不同入口点在不同位置暂停或开始执行程序3.从技术角度讲,协程就是一个可以暂停执行的函数,或者干脆把协程理解为一个生成器4.协程对资源的消耗很小,要比多进程消耗的资...原创 2019-09-28 00:13:38 · 231 阅读 · 0 评论 -
Python连载33-共享变量加锁、释放
一、共享变量共享变量:当多个线程访问同一个变量的时候。会产生共享变量的问题。例子:import threadingsum = 0loopSum = 1000000def myAdd(): global sum, loopSum for i in range(1,loopSum): sum += 1def myMinu(): global sum...原创 2019-08-28 00:08:41 · 132 阅读 · 0 评论 -
Python连载32-多线程其他属性以及继承Thread类
一、线程常用属性1.threading.currentThread:返回当前线程变量2.threading.enumerate:返回一个包含正在运行的线程的list,正在运行的线程指的是线程启动后,结束前的状态3.threading.activeCount:返回正在运行的线程数量,效果跟len(threading.enumer)一样4.thr.setName:给线程设置名字5.thr.g...原创 2019-08-23 00:05:16 · 154 阅读 · 0 评论 -
Python连载15-高阶函数&map映射
一、高阶函数1.定义:把函数作为参数使用的函数叫做高阶函数(1)变量可以设置为赋值a=100b=a(2)函数名称就是一个变量def FunA(): print("FunA()")FunA()FunB = FunAFunB()注意:i.函数名称是变量。ii.FunA和FunB只是名称不一样而已iii.既然函数名称是变量,则应该可以被当做参数传入另一个函数中去。2.高...原创 2019-06-24 00:21:26 · 128 阅读 · 0 评论 -
Python连载16-reduce函数&filter函数
一、reduce函数本函数释义:(1)原意是归并,缩减(2)把一个可迭代的对象最后归并成一个结果(3)对于作为参数的函数要求:必须由两个参数,必须返回一个结果import functools#定义一个操作函数,加入操作函数只是相加def myAdd(x,y): return x + y#对于列表执行myAdd的操作num1 = functools.reduce(myAdd...原创 2019-06-26 00:06:46 · 128 阅读 · 0 评论 -
Python连载14-random模块&函数式编程
一、random模块1.函数:random()(1)用法:获取0~1之间的随即小数(2)格式:random.random()(3)返回值:随机0~1之间的小数2.函数:choice()(1)用法:随机返回序列中的某个值(2)格式:random.choice(序列)(3)返回值:序列中的某个值3.函数:shuffle()(1)用法:随机打乱列表(2)格式:random.shuf...原创 2019-06-22 00:01:45 · 122 阅读 · 0 评论 -
Python连载13-shutile模块(续)和zipfile模块
一、shutil模块(续)1.函数:upack_archive()(1)用法:解包操作(2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“)(3)返回值:解包之后的地址(4)遗留问题:为什么解压到本身文件夹不行,其他文件夹就可以?unpack_archive_address = r"C:\Users\lenovo1\Desktop\微信公众号运营...原创 2019-06-21 00:13:56 · 294 阅读 · 0 评论 -
Python连载11-Python中os.path模块简介
一、os.path(和路径相关的木块)1.函数:abspath()(1)含义:将路径转化为绝对路径的形式(absolute path)(2)格式:os.path.abspath(相对路径)(3)注意:点代表当前目录,双点代表当前父目录(4)返回值:路径的绝对路径形式。print(abc.abspath("."))2.函数:basename()(1)用法:获取路径中的文件名部分...原创 2019-06-17 00:18:02 · 249 阅读 · 0 评论 -
Python连载5-常用包简介
(延续连载4中的内容)1.calendar包(6)函数:monthcalendar()含义:返回一个月每天的矩阵列表格式:calendar.monthcalendar(年,月)返回值类型:二级列表注意:矩阵中没有天数用0来表示。m = calendar.monthcalendar(2019,6)print(type(m))for i in m:print(i)n = cale...原创 2019-06-05 00:00:12 · 407 阅读 · 0 评论 -
Python连载10-os包函数(续)
一、os包(接连载9)1.函数:system()(1)用法:运行系统shell命令(2)格式:os.system(系统命令)(3)返回值:打开一个shell或终端界面(4)注意:一般是用subprocess来代替。rst1 = os.system('cd')print(rst1)成功了返回0,失败了返回12.函数:getenv()(1)用法:获取指定的系统环境变量值(2)...原创 2019-06-15 00:24:52 · 128 阅读 · 0 评论 -
Python连载7-time包的其他函数
接连载6一、time包1.函数:sleep(second)(1)含义:是程序进入休眠状态多少秒(2)格式:time.sleep(int num)2.函数:strftime()(1)含义:将我们的时间戳表示成我们想要的时间格式(2)格式:time.strftime(时间戳)(3)返回值类型:字符串(4)字符含义:%y 两位数的年份表示(00-99)%Y 四位数的年份表示(00...原创 2019-06-09 00:38:20 · 126 阅读 · 0 评论 -
Python连载12-shutil模块
一、shutil模块1.函数:copy()(1)用法:复制文件0(2)格式:copy(来源路径,目标路径)(3)返回值:返回目标路径(4)注意:拷贝的同时可以给文件重命名source_path = r"C:\Users\lenovo1\Desktop\微信公众号运营-Python\image\4.1.png"target_path = r"C:\Users\lenovo1\Deskt...原创 2019-06-19 00:16:27 · 175 阅读 · 0 评论