
Python
daijiguo
China NO.1
展开
-
python快速格式化json
一、管道方式echo '{"a": 1, "b": 2}' | python -m json.tool二、文件方式python -m json.tool djg.txt在没有安装jsonviewer等工具的时候,可以通过以上方式,进行快速的格式化。...原创 2018-12-17 15:58:59 · 3864 阅读 · 0 评论 -
python形参的传递/匹配
现有如下函数:def func(name, age): print(name, age)对于这个函数,以下的调用时等价的:func('rechar', 27) #按顺序匹配func(name = 'rechar', age = 27) #按参数名称匹配,在运行时告诉系统参数name的值为‘rechar’,age的值为27func(age = 27, name = 'rechar'原创 2017-09-22 16:30:33 · 565 阅读 · 0 评论 -
python多线程在IO密集型情况下为什么会更快?
下面是Python 2.7.9手册中对GIL的简单介绍: The mechanism used by the CPython interpreter to assure that only one thread executes Python bytecode at a time. This simplifies the CPython implementation by making the o原创 2017-09-20 16:22:38 · 7620 阅读 · 1 评论 -
python计算时间差
from datetime import datetimestart = datetime.strptime('2017-09-01 10:10:00', '%Y-%m-%d %H:%M:%S')end = datetime.strptime('2017-09-01 10:10:11', '%Y-%m-%d %H:%M:%S')print (end-start).seconds原创 2017-10-09 09:25:24 · 1246 阅读 · 0 评论 -
python导入循环问题
模拟一个简单的场景a.py中有一个函数a(),需要调用b.py中的函数b(), 而b.py中的函数c()又需要调用a(),这就出现了循环导入。代码如下所示:from b import bprint '---------this is module a.py----------'def a(): print "hello, a" b()a()1234567转载 2017-10-17 19:46:47 · 1674 阅读 · 0 评论 -
pip下载安装包以及其依赖,到指定目录
pip download -d path flask原创 2017-09-11 18:18:05 · 16801 阅读 · 0 评论 -
eval和exec的区别
区别: 1、Exec与Eval语句的主要区别是,Exec处理字符串里面的代码,而Eval是处理字符串里面的表达式。 2、Exec没有返回值,Eval有返回值 代码示例:>>>exec("print 333")333>>>>>>print "9+10"9+10>>>>>>print eval("9+10")19>>>原创 2017-09-19 17:02:20 · 3932 阅读 · 0 评论 -
flask-restful接收post传参
如果是application/json方式from flask_restful import requestdict = request.json()如果是application/x-www-form-urlencoded方式from flask_restful import requestdict = request.form原创 2017-09-27 19:04:59 · 15381 阅读 · 1 评论 -
flask-restful获取当前页的访问路径
from flask_restful import requestdef get() print request.path print request.url原创 2017-09-27 10:41:30 · 8544 阅读 · 0 评论 -
python连接redis单例模式
import redis class RedisCache(object): HOST = '127.0.0.1' PORT = 6379 DBID = 0 def __init__(self): if not hasattr(RedisCache, 'pool'): RedisCache.create_原创 2017-09-18 17:27:46 · 3963 阅读 · 0 评论 -
Flask-restful路由实现url后面跟多个参数
from flask import Flaskfrom flask_restful import Apiapp = Flask(__name__)api = Api(app)api.add_resource(Todo, root + '/<int:page>/<int:limit>', endpoint)如上代码中,url后面跟了两个参数,page表示分页的第几页,limit表示每页要显示的原创 2017-09-24 10:50:56 · 13952 阅读 · 0 评论 -
flask-restful路由实现多个url地址指向同一个类
from flask import Flaskfrom flask_restful import Apiapp = Flask(__name__)api = Api(app)api.add_resource(Todo, root1, root2, endpoint)root1和root2两个路径都是指向Todo类原创 2017-09-24 10:46:59 · 3957 阅读 · 0 评论 -
[MySQLdb模块]如何让游标cursor的fetchall函数返回字典,而不是元组
import MySQLdbdb = MySQLdb.connect("localhost","testuser","test123","TESTDB" )cursor = db.cursor(MySQLdb.cursors.DictCursor)results = cursor.fetchall()原创 2017-09-14 18:16:07 · 9208 阅读 · 0 评论 -
mac安装anaconda之后,如何配置环境变量
export PATH=~/anaconda2/bin:$PATH输入conda list,看是否生效原创 2017-08-06 11:08:07 · 19017 阅读 · 0 评论 -
python选择排序
def choosesort(list): for i in range(0,len(list)): for j in range(len(list)-1,i,-1): if list[j] < list[i]: list[j], list[i] = list[i], list[j] print listch原创 2016-09-17 09:17:29 · 712 阅读 · 0 评论 -
python比较时间大小
a = '2017-10-18 22:17:46'b = '2017-10-19 22:17:40'print a > b# 结果False解释:python中字符串的大小比较,是按照字符顺序,从前往后依次比较字符的ASCII数值,例如‘abc’要小于‘abd’。因此,时间字符串也可以直接比大小。原创 2017-10-19 13:38:17 · 75366 阅读 · 4 评论 -
'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化.编码是 unicode -> str,相反的,解码就 是 str -> unicode剩下的问题就是确定何时需要进行编码或者解码了.关于文件开头的"编码指示",也就是 # -*- coding: -*- 这个语句。Python 默认脚本文件都是 UTF-8 编码的,当文件中有非 UTF-8 编转载 2017-10-29 12:56:40 · 2799 阅读 · 0 评论 -
关于迭代器和生成器的总结
1、但凡是可以返回一个迭代器的对象都可称之为可迭代对象,例如:>>> ite = iter([1, 2, 3])>>> print type(ite)<type 'listiterator'>因此,字典、列表、集合都是可迭代对象。2、任何实现了__iter__()和__next__()/next()方法的对象都是迭代器__...原创 2018-07-31 22:44:42 · 324 阅读 · 0 评论 -
python中的类变量和对象变量,以及传值传引用的探究
一、类变量可变变量作为类变量:对于列表、字典、自定义类这些可变变量,如果将其作为类变量,则是传引用。即所有对象的类变量公用一个内存地址。不可变变量作为类变量:对于INT,STRING这种不可变变量,如果将其作为类变量,则是传值。即所有对象的类变量有各自的内存地址。二、对象变量不管是可变变量还是不可变变量,只要是放在构造函数中,则都是传值。即各个对象拥有自己的对象属性。例子请参考:...原创 2018-03-29 08:06:17 · 1978 阅读 · 1 评论 -
sqlalchemy插入操作后自动返回自增ID
result = session.execute('insert into ***')session.commit()last_insert_id = result.lastrowid注意:如果存在多个用户操作数据库,应保持每个用户或者每个请求线程拥有各自隔离的session...原创 2018-03-14 11:57:37 · 16474 阅读 · 1 评论 -
python redis批量模糊删除keys
>>> import redis>>> conn = redis.Redis(host='localhost', port=6379, db=0)>>> conn.delete(*conn.keys(pattern='*test*'))解释: conn.keys(‘test‘)返回一个匹配相应模式的列表 通过*号,可以看出...原创 2018-03-16 22:36:25 · 9587 阅读 · 0 评论 -
线程池threadpool中的“most likely raised during interpreter”
示例代码:import threadpoolimport time,randomimport Queuedef hello1(str): time.sleep(2) return strdef print_ret(request, result): print "the result is %s %r\n" % (request.requestID, r...原创 2018-03-08 19:10:25 · 2289 阅读 · 0 评论 -
数据库连接池SQLAlchemy中多线程安全的问题
1、数据库模块model.pyfrom sqlalchemy.orm import scoped_sessionfrom sqlalchemy.orm import sessionmakersession_factory = sessionmaker(bind=some_engine)Session = scoped_session(session_factory)2、业...原创 2018-03-08 16:29:03 · 8561 阅读 · 3 评论 -
python代码打包
1、打成pip包使用setuptools打成pip包,即制作成模块,且利用其console_scripts功能,可以将python程序做成“python可执行文件”。 参考:http://yansu.org/2013/06/07/learn-python-setuptools-in-detail.html http://python.jobbole.com/87240/2、打成二进...原创 2018-02-26 09:39:55 · 1291 阅读 · 0 评论 -
poll、select和epoll的区别
select:1.每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大 2.同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大 3.select支持的文件描述符数量太小了,默认是1024poll:1.poll的实现和select非常相似,只是描述fd集合的方式不同,poll使用pollfd结构而不是select的原创 2018-02-05 16:06:48 · 244 阅读 · 0 评论 -
python求补集合、交集、并集
联合( | ) 联合(union)操作和集合的 OR(又称可兼析取(inclusive disjunction))其实是等价的,两个集合的联合是一个新集合,该集合中的每个元素都至少是其中一个集合的成员,即属于两个集合其中之一的成员。联合符号有一个等价的方法:union()。交集( & ) 可以把交集操作比做集合的AND(或合取)操作。两个集合的交集是一个新集合,该集合中的每个元素原创 2017-11-28 13:33:01 · 15213 阅读 · 0 评论 -
local_to_utc && utc_to_local
utc转localimport pytz, datetimedef uto_to_local(utc_time_str, tz='Asia/Shanghai', utc_format='%Y-%m-%dT%H:%M:%SZ') localTz = pytz.timezone(tz) utc_dt = datetime.datetime.strptime(utc_time_str,u原创 2017-12-21 15:54:45 · 676 阅读 · 0 评论 -
python csv模块配置分隔符和引用符
file = open('./abc.csv')csv.reader(file, delimiter=',', quotechar='"')说明:delimiter是分隔符,quotechar是引用符,当一段话中出现分隔符的时候,用引用符将这句话括起来,就能排除歧义。原创 2017-10-26 08:58:46 · 20280 阅读 · 0 评论 -
python中self和cls的区别
1、self表示一个具体的实例本身。如果用了staticmethod,那么就可以无视这个self,将这个方法当成一个普通的函数使用。2、cls表示这个类本身。>>> class A(object): def foo1(self): print "Hello",self @staticmethod def foo2():原创 2017-11-10 14:22:13 · 44621 阅读 · 2 评论 -
linux命令获取inode使用量,系统盘使用量,内存和swap使用量
freelsblkdfdf -i原创 2017-11-07 13:47:01 · 3518 阅读 · 0 评论 -
python的中的字符串类型:byte string和unicode string
unicode和utf8的层级关系:unicode:狭义:信源编码,将字符数字化,即一个字符对应一个十进制数字,是ascii表的一个扩展。 广义:信源编码+信道编码,用unicode作为信源编码,用ucs-2作为存储和传输的信道编码,即在内存或者硬盘中,一个unicode字符占两个字节,16位。utf8:信道编码,用于字符的存储和传输,减小存储空间,减小传输流量。utf8是可变长编码方式,存英文是原创 2017-10-26 15:22:13 · 2430 阅读 · 0 评论 -
python堆排序
#coding:utf-8#沿左,右子节点较大者依次往下调整def heapify( array, i, n ):#把某个结点下的所有子树更新成大顶堆 j = i * 2 + 1 while j < n: if j + 1 < n and array[j] < array[j + 1]:#左孩子和右孩子中取最大 j += 1原创 2016-09-15 11:13:24 · 500 阅读 · 0 评论 -
python归并排序
#coding:utf-8def mergesort(seq):#递归 if len(seq) <= 1: return seq mid = int(len(seq) / 2) left = mergesort(seq[:mid]) right = mergesort(seq[mid:]) return merge(left, right)原创 2016-09-14 22:02:00 · 555 阅读 · 0 评论 -
python插入排序
def insertsort(list): for i in range(1, len(list)): temp = list[i] for j in range(i, -1, -1): if list[j] > temp: list[j],list[j+1] = list[j+1], list[j]原创 2016-09-14 23:49:06 · 387 阅读 · 0 评论 -
如何查看已经安装的python软件包和版本
pip freeze原创 2016-07-20 10:01:01 · 69290 阅读 · 0 评论 -
python获取键盘输入
raw_input函数raw_input() 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):str = raw_input("Enter your input: ");print "Received input is : ", str这将提示你输入任意字符串,然后在屏幕上显示相同的字符串。当我输入"Hello Python!",它的输出如下:E原创 2016-08-04 15:52:36 · 18306 阅读 · 0 评论 -
sys.setdefaultencoding()使用前,必须reload(sys)
#!/usr/bin/env python #encoding: utf-8 import sys #引用sys模块进来,并不是进行sys的第一次加载 reload(sys) #重新加载sys sys.setdefaultencoding('utf8') ##调用setdefaultencoding函数要在调用setdefaultencoding时必须要先reloa原创 2016-07-21 16:09:09 · 7540 阅读 · 0 评论 -
安装jieba分词库
全自动安装:easy_install jieba 或者 pip install jieba半自动安装:先下载http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install原创 2016-07-21 15:59:55 · 4158 阅读 · 0 评论 -
python同时给多个变量赋值
Python允许你同时为多个变量赋值。例如:a = b = c = 1以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。您也可以为多个对象指定多个变量。例如:a, b, c = 1, 2, "john"以上实例,两个整型对象1和2的分配给变量a和b,字符串对象"john"分配给变量c。错误示范:原创 2016-08-04 15:27:32 · 47273 阅读 · 1 评论 -
from module import * 和import module的区别
如果采用from module import *,则可在代码中直接使用方法名如果采用import module,则在代码中必须写成module.function的形式例如:from math import sqrt是把sqrt作为本文件的方法导入进来了,使用的时候只需要直接调用sqrt。而如果import是import math,那么调用的时候要采用math.sqrt的原创 2016-08-04 08:44:56 · 4536 阅读 · 0 评论