Python
xsj_blog
这个作者很懒,什么都没留下…
展开
-
Asyncio
异步 IO,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。可交给 asyncio 执行的任务,称为协程(coroutine)。一个协程可以放弃执行,把机会让给其它协程(即 yield from 或 await)event_loop 事件循环:程序开启一个无限的循环,程序员会把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。 ...原创 2018-08-08 09:07:34 · 2831 阅读 · 0 评论 -
python操作Excel读写--使用xlrd
安装xlrd模块在 ubuntu 下,运行如下命令,即可完成安装sudo easy_install xlrd二、使用介绍 1、导入模块 import xlrd 2、打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls')3、 获取一个工作表table = data.sheets()[0] #通过索引顺序获取t原创 2016-10-11 23:58:37 · 485 阅读 · 0 评论 -
用python处理MS WORD(用到python-docx库)
安装pyhton 处理 docx 文件需要使用 python-docx 包,可以利用pip工具很方便的安装,pip工具在python安装路径下的Scripts文件夹中pip install python-docx 当然你也可以选择使用easy_install或者手动方式进行安装写入文件内容此处我们直接给出一个样例,根据自己的需要摘取有用的内容#coding=utf-8from docx impor转载 2016-08-26 23:54:38 · 6486 阅读 · 0 评论 -
python 装饰器
装饰器介绍装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。装饰器最早在Python 2.5中出现,它最初被用于加工函数和方法这样的可调用对象原创 2016-08-28 11:31:42 · 508 阅读 · 0 评论 -
python的学习笔记
关于一个星号、两个星号即(* 、**)的问题: 例:>>> 2*36>>>>>>>>> 2**38>>>原创 2016-07-25 23:45:30 · 303 阅读 · 0 评论 -
字符串、列表、元组、字典、集合的区别
字符串特性:不能修改的字符序列。除了不能修改,可把字符串当成列表一样处理。访问:访问字符串中某个字符同访问元组或列表中的元素是一样的,专业术语叫“分片(slicing)”。例:str = "aString",str[0] = "a",str[1] = "S"。这里不做深入讨论字符串,把字符串放在这里主要是为了说明字符串具备列表的一些特点。列表(list)什么是列表呢?我觉得列表就是我们日常生活中经常原创 2016-07-31 00:14:46 · 10477 阅读 · 1 评论 -
GB码 BIG5码区别是什么?
计算机中表示中文文字的编码方式,GB是简体中文 BIG5是繁体中文的原创 2016-07-09 13:29:01 · 6542 阅读 · 0 评论 -
gbk和utf8的区别
我们这里将以最简单最容易理解的方式来描述GBK和UTF8的区别,以及它们分别是什么。GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码。GBK和UTF8有什么区别?UTF8编码格式很强大,支持所有国家的语言,正是原创 2016-07-09 13:05:58 · 1339 阅读 · 0 评论 -
列表和字符串比较
一、序列 序列:数学上,序列是被排成一列的对象(或事件);这样,每个元素不是在其他元素之前,就是在其他元素之后。这里,元素之间的顺序非常重要。(来自《维基百科》)字符串和列表都是序列。二、列表和字符串的比较列表是可以原地修改的>>> a = [1,2,3]>>> id(a) #表示该列表在内存中的地址44379792>>> a.append(4) #没有返回值,这是原地修原创 2016-06-23 20:12:24 · 2921 阅读 · 0 评论 -
python 内建函数isinstance的用法以及与type的区别
isinstance 的用法:语法:isinstance(object, classinfo)其中,object 是变量,classinfo 是类型即 (tuple,dict,int,float,list,bool等) 和 class类若参数 object 是 classinfo 类的实例,或者 object 是 classinfo 类的子类的一个实例, 返回 True。 若 object 不是一原创 2016-11-27 23:14:42 · 12420 阅读 · 1 评论 -
windows和ubuntu下的python2和python3的打开命令
windows系统假设已将python2和python3在windows系统配置好环境变量后 打开python2的命令py -2打开python3的命令py -3ubuntu系统打开python2的命令python2打开python3的命令python3原创 2017-03-26 14:00:50 · 1158 阅读 · 0 评论 -
cookies序列化与反序列化
cookies 序列化# python3 ,推荐使用 cPicklefrom http.cookies import SimpleCookieimport pickle, osif not os.path.exists(doc_name): with open(doc_name, 'wb') as f: pickle.dump({k.key: k.value for k原创 2017-09-06 20:10:34 · 3970 阅读 · 0 评论 -
getattr(), setattr(), delattr(), hasattr()
getattr(), setattr(), delattr(), hasattr()原创 2017-09-06 12:56:43 · 557 阅读 · 0 评论 -
Python2与Python3的编码问题
什么是编码将明文转换为计算机可以识别的的编码文本称为“编码”, 反之从计算机可识别的编码文本转回明文为“解码”ASCII计算机上的数据都是以二进制的形式存储的,1个字节(8比特)可以表示256种状态,英文只有26个字符,再加上一些特殊字符,使用128个就够了,计算机就可以使用127个不同字节来存储英语文字,这就是ASCII编码最开始的时候8位中的最高位是没有用到的,后来为了表示拉丁文,将最高位用上形原创 2017-06-25 20:25:08 · 638 阅读 · 0 评论 -
自定义项目中各自定义模块引用问题的解决方法
假设在 /home/xsj/workspace/city58 下面创建自定义项目 city58 ,项目 city58 的内文件夹及文件如下xsj@ubuntu:~/workspace$xsj@ubuntu:~/workspace$xsj@ubuntu:~/workspace$ tree.└── workspace └── city58 ├── common.py原创 2017-06-20 02:20:18 · 1006 阅读 · 0 评论 -
Python的全局锁(GIL)问题
CPU-bound(计算密集型) 和I/O bound(I/O密集型)计算密集型任务(CPU-bound) 的特点是要进行大量的计算,占据着主要的任务,消耗CPU资源,一直处于满负荷状态。比如复杂的加减乘除、计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU原创 2017-04-23 19:57:00 · 4977 阅读 · 0 评论 -
Python之生成器详解
可迭代对象(iterable) 与 迭代器(iterator)关系如下图:对一个iterable用for … in …进行迭代时,实际是先通过调用iter()方法得到一个iterator,假设叫做X。然后循环地调用X的next()方法取得每一次的值,直到iterator为空,返回的StopIteration作为循环结束的标志。for … in … 会自动处理StopIteration异常,从而避免了原创 2017-04-23 19:17:18 · 2961 阅读 · 0 评论 -
Python开发必备神器之一:virtualenv
virtualenv 安装windows/ubuntu系统下安装pip install virtualenv基本用法创建项目的虚拟环境 在某个目录下,运行如下命令,即可创建virtualenv zhangsan # zhangsan是虚拟环境名称,可替换为别的虚拟环境名称默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境原创 2017-04-05 22:25:26 · 673 阅读 · 0 评论 -
Python 解析式
列表解析式列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。其结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。单个循环有条件子句的列表解析式numbers = [1, 2, 3, 4, 5]d原创 2017-04-05 21:26:23 · 1046 阅读 · 0 评论 -
python列表
一、列表的基本知识列表的定义:空列表:>>> [] #空的列表[]>>> type([])<type 'list'>>>> a = []>>> bool(a)False>>> **注意:**python的列表中的元素可以是任何python对象,可以是字典、集合、列表等等。如下例子,列表中元素可以是任何对象:>>> a = ["laoshi",25,89.9,["lao原创 2016-06-23 19:12:13 · 385 阅读 · 0 评论 -
迭代的含义及操作
迭代的基本含义:基本:迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。 计算机:在计算机科学中,迭代是程序中对一组指令(或一定步骤)的重复。它既可以被用作通用的术语(与“重复”同义),也可以用来描述一种特定形式的具有可变状态的重复。迭代的操作:for Iter()…next() 迭原创 2016-06-23 17:02:24 · 10544 阅读 · 0 评论 -
python中的map、filter、reduce函数
出自:lambda47的博客三个函数比较类似,都是应用于序列的内置函数。常见的序列包括list、tuple、str。1.map函数map函数会根据提供的函数对指定序列做映射。map函数的定义: map(function, sequence[, sequence, …]) -> list 通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合。 funct转载 2016-06-18 01:41:29 · 244 阅读 · 0 评论 -
python中yield用法
出自Leon yield关键字用来定义生成器(Generator),其具体功能是可以当return使用,从函数里返回一个值,不同之处是用yield返回之后,可以让函数从上回yield返回的地点继续执行。也就是说,yield返回函数,交给调用者一个返回值,然后再“瞬移”回去,让函数继续运行, 直到吓一跳yield语句再返回一个新的值。使用yield返回后,调用者实际得到的是一个迭代器对象,迭代器的值转载 2016-06-17 10:33:40 · 633 阅读 · 0 评论 -
详解Python中的join()函数的用法
Python中有join()和os.path.join()两个函数,具体作用如下:join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。os.path.join(): 将多个路径组合后返回。函数说明如下:1、join()函数语法: ‘sep’.join(seq)参数说明: sep:分隔符,可以为空。 seq:要连接的元素序列、字符串、转载 2016-06-17 10:20:29 · 4035 阅读 · 1 评论 -
华为python面试题
有两个序列a,b,大小都为n,序列元素的值任意整形数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。解题思路如下:(不知对不对) 1. 将两序列合并为一个序列,并排序,为序列Source; 2. 拿出最大元素Big,次大的元素Small; 3. 在余下的序列S[:-2]进行平分,得到序列max,min4. 将Small加到max序列,将Big加大转载 2016-06-16 12:04:11 · 4052 阅读 · 0 评论 -
介绍一下Python下range()函数的用法?
如果需要迭代一个数字序列的话,可以使用range()函数,range()函数可以生成等差级数。如例: for i in range(5): print(i) 这段代码将输出, 1, 2, 3, 4五个数字range(1)会产生1个值, 也可以让range()从另外一个数字开始,或者定义一个不同的增量,甚至是负数增量 range(1, 10, 3) 增量为三, 返回值是列表即 [1,4,7]转载 2016-06-16 12:02:49 · 1130 阅读 · 2 评论 -
介绍一下except的用法和作用?
Python的except用来捕获所有异常, 因为Python里面的每次错误都会抛出 一个异常,所以每个程序的错误都被当作一个运行时错误。一、下面是使用except的一个例子:try:foo = opne(̶file”) #open被错写为opneexcept:sys.exit(̶could not open file!”)因为这个错误是由于open被拼写成opne而造成的,然后被except捕获,转载 2016-06-16 12:01:56 · 3752 阅读 · 0 评论 -
集合
一、集合的基本概念集合(或简称集)是基本的数学概念,它是集合论的研究对象。最简单的说法,即是在最原始的集合论─朴素集合论─中的定义,集合就是“一堆东西”。集合里的“东西”,叫作元素。若然 x 是集合 A 的元素,记作 x ∈ A。集合是现代数学中一个重要的基本概念。集合论的基本理论直到十九世纪末才被创立,现在已经是数学教育中一个普遍存在的部分,在小学时就开始学习了。这里对被数学家们称为“直观的”或“原创 2016-06-24 14:32:34 · 626 阅读 · 0 评论 -
__name__的认识
认识主模块在python函数中,如果一个函数调用其他函数完成一项功能我们称这个函数为主函数。如果一个函数没有调用其他函数,我们这种函数叫做非主函数。模块也是一样的,如果一个模块是被直接使用的,而没有被别人调用,我们称这个模块为主模块,如果一个模块被别人调用,我们这种模块叫做非主模块。在python中有主模块与非主模块之分。如果一个模块的_ _ name _ _ 属性的值是 _ _ main _ _原创 2016-06-24 00:19:11 · 330 阅读 · 0 评论 -
Exec 与 eval 语句
一、什么是Exec语句假如我们一串字符串里面有Python代码,这个时候,普通情况是会把这串代码作为字符串来输出的,而不会执行这段代码。如果此时,我们想执行这串字符串里面的Python代码,使用Exec语句即可解决。二、什么事Eval语句假如我们一串字符串里面有Python的表达式,这个时候,普通情况是会把这串表达式作为字符串来输出的,而不会执行这个表达式。如果此时,我们想执行这串字符串里面的Pyt原创 2016-06-23 23:18:58 · 5151 阅读 · 0 评论 -
reduce函数
reduce:其语法格式: reduce ( func , seq [ , init ] )参数说明:reduce函数即为化简,它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。简单来说,可以用这样一个形象化原创 2016-07-26 12:05:24 · 13297 阅读 · 0 评论 -
一行 Python 实现并行化 — 日常多线程操作的新思路
出自:岭南六少的博客 Python 在程序并行化方面多少有些声名狼藉。撇开技术上的问题,例如线程的实现和 GIL1,我觉得错误的教学指导才是主要问题。常见的经典 Python 多线程、多进程教程多显得偏“重”。而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容。传统的例子简单搜索下“Python 多线程教程”,不难发现几乎所有的教程都给出涉及类和队列的例子:#Example.py'''Sta转载 2016-06-18 09:27:24 · 362 阅读 · 0 评论 -
文件的操作
一、文件和文件夹文件:文本文件、二进制文件文件夹: (Windows)C:\python\nihao.txt (Mac/Linux) /home/python/nihao.txt跨平台路径:os.path.abspath(path)查看属性:os.stat(filename) 例如:>>> p1 = 'c:\\python\\nihao.txt'>>> import os>>> os.st原创 2016-06-22 12:22:13 · 452 阅读 · 0 评论 -
python中的深拷贝和浅拷贝理解
出自:快乐编程 在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用。以下分两个思路来分别理解浅拷贝和深拷贝:利用切片操作和工厂方法list方法拷贝利用copy中的deepcopy方法进行拷贝利用切片操作和工厂方法list方法拷贝代码场景:有一个小伙jack,tom通过切片操作拷贝jack,an转载 2016-07-07 08:05:41 · 521 阅读 · 0 评论 -
python中字典按键或键值排序
出自:快乐的雨点的博客字典排序在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的。因此,为了使统计得到的结果更方便查看需要进行排序。Python中字典的排序分为按“键”排序和按“值”排序。按“值”排序按“值”排序就是根据字典的值进行排序,可以使用内置的sorted()函数。 sorted(iterable[, cmp[, key[, reverse]]])iterab转载 2016-07-07 01:57:03 · 66667 阅读 · 7 评论 -
collections
出自:廖雪峰的博客collections是Python内建的一个集合模块,提供了许多有用的集合类。OrderedDict是dict的子类,它记住了内容添加的顺序。使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。如果要保持Key的顺序,可以用OrderedDict:>>> from collections import OrderedDict>>> d = dict转载 2016-07-06 01:36:33 · 1181 阅读 · 0 评论 -
字典
一、对字典的认识:字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。 注意: 键必须独一无二,但值则不必。即,键是不能重复,但值可以是重复的; 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住 键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行; 值可以取任何数据类型,但必须是不可变的,如字符串,数或元组原创 2016-07-05 23:43:25 · 1002 阅读 · 0 评论 -
Python中PyQuery库的使用总结
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的。他的官方文档地址是:http://packages.python.org/pyquery/。今天重新看了一遍整个文档,把它的一些使用方法整理了一下,做个记录。使用方法 from pyquery import PyQuery as pq1.可加载一段HT转载 2016-07-05 00:41:00 · 1253 阅读 · 0 评论 -
Python多进程并发操作中进程池Pool的应用
出自:Squall_Liu在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,10几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,这时候进程池Pool发挥作用的时候就到了。Pool可以提供指定数量的进程,供用户调转载 2016-06-19 03:03:09 · 741 阅读 · 0 评论 -
easy_install 和 pip 的安装及使用
easy_install和pip都是用来下载安装Python一个公共资源库PyPI 的相关资源包的,pip是easy_install的改进版,提供更好的提示信 息,删除package等功能。老版本的python中只有easy_install, 没有pip。easy_install 的安装前提是python的环境已配置好下载地址:https://pypi.python.org/pypi/ez_s原创 2016-07-26 17:08:38 · 82147 阅读 · 10 评论