最近需要实现一个服务程序的gracefulexiting,保证在退出前关闭所有已创建的子线程python借助KeyboardInterrupted异常响应键盘中断,因此首先尝试在子线程中try-catch这个异常(失败)查阅原因,键盘中断只有主线程可以响应并处理,子线程无法收到这个异常。因此可以使用类似这样的结构:cond=Truedefstart_task():whilecond:#dosomethingdefterminate_task():#brea
系统 2019-09-27 17:55:29 2044
上一章我们介绍了python中的列表,本章介绍其余三种数据结构:字典、集合和元组。1、字典字典有两个特点:其一,字典是由大括号{}包围的;其二,字典的每一个元素的模式都是“键:值”,而不是“键=值”,两个元素之间用逗号,隔开。注意,字典初始化的顺序不会保持,在初始化后,再次查看字典时,元素顺序可能变化。一般访问字典的数据时,使用中括号记法,中括号中是键,使用键来访问其关联的数据值。python字典的底层是一个大小可变的散列表。空字典的初始化就是一个空的大括
系统 2019-09-27 17:54:55 2044
有很多程序运行时间比较长,如果不将运行过程输出将很难判断程序运行的时间。下边这段程序将按照上图所示的格式输出程序运行进程、已用时间、剩余时间。deftime_change(time_init):#定义将秒转换为时分秒格式的函数time_list=[]iftime_init/3600>1:time_h=int(time_init/3600)time_m=int((time_init-time_h*3600)/60)time_s=int(time_init-t
系统 2019-09-27 17:54:42 2044
(1)常用内置数据类型分类类型名称描述数字int整数float浮点数complex复数bool布尔值序列str字符串(不可变序列)list列表tuple元组(不可变序列)range整数范围(不可变序列)bytes字节数组(不可变序列)bytearray可变字节数组映射dict字典集合set可变集合frozenset不可变集合NoneNoneType空对象,它没有任何属性(2)类型检查常用方法用法类型描述举例id(实例)内置函数返回一个对象的身份(整数)id
系统 2019-09-27 17:53:28 2044
1.安装pyserialhttps://pypi.python.org/pypi/pyserialDoc:http://pythonhosted.org/pyserial/使用PythonPackageIndex(PyPi)pipinstallpyserial-3.1.1-py2.py3-none-any.whl2.Demoimportserialfromtimeimportsleepdefrecv(serial):whileTrue:data=seria
系统 2019-09-27 17:53:10 2044
方法一,利用alias,自定指令的别名。当前默认python版本是2.7:同时,也支持python3:使用命令ls/usr/bin/python*查看python地址:使用命令aliaspython='/usr/bin/python3.5'更改默认python版本(设定别名):这个方法在断开之后就无效了。可以在~/.bashrc文件中加入alias命令使它永久生效。方法二,使用update-alternatives命令:输入命令:update-altern
系统 2019-09-27 17:52:47 2044
建造者模式,也是一种创建新对象的设计方法,和C++中的虚函数很类似,但是用到了python自身的虚基类ABCMeta。1.应用场景:某个类中的函数较多,且实现比较复杂,很多时候需要继承的子类重载或者重新定义逻辑;2.背景基础:由于用到python中虚函数,需要了解abc模块中的ABCMeta和python中类创建对象时的__metaclass__属性含义。一般地,在某个类中如果定义__metaclass__=something时,简单地说是,创建对象时,会
系统 2019-09-27 17:52:24 2044
前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容。主要有三种方法:1.切片法(最简洁的一种)#切片法defreverse1():s=input("请输入需要反转的内容:")returns[::-1]reverse1()#运行结果In[23]:defreverse1():...:s=input("请输入需要反转的内容:")...:returns[::-1]...:...:reverse1()请输入需要反转的内容:你是一个
系统 2019-09-27 17:52:09 2044
打包:pyinstaller-F(生成单一运行文件)-i(+图标路径)-w(无控制台)*.py(文件)1.pyinstaller打包报错:RecursionError:maximumrecursiondepthexceeded上一步生成*.spec文件,在*.spec中加入importsyssys.setrecursionlimit(5000)执行命令pyinstaller*.spec2.UnicodeDecodeError:'utf-8'codeccan
系统 2019-09-27 17:51:26 2044
http.cookiejar前面讲到的cookie的使用,我们首先使用的是浏览器登陆之后,将中间的cookie取出来,之后将其应用到代码中,实现代码请求的功能,但是显然这样并不是非常的完美,如果代码能够自动的获取到cookie并完成后续的工作会更加的完美对于这个http.cookiejar,该模块主要的类有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。对于这四类的作用非别如下:1、CookieJ
系统 2019-09-27 17:50:59 2044