SF
Python提高班
Python提高班
注册登录
关注博客
注册登录
主页
关于
RSS
Python数据模型构建和迁移方案:SQLAlchemy&Alembic
Nisen
2018-04-28
阅读 4 分钟
5.7k
Python的世界里有许多web框架:比如大而全的 Django, 提供了模型定义迁移,到路由处理,再到视图的渲染等整套功能;比如小巧灵活的Flask, 虽然只包含了核心的请求处理内容,但却可以通过安装生态丰富的插件来完成大多数所需功能;比如面向ERP行业的Odoo, 除了基础的MVC, 还提供了常用的进销存和人力资源等模块以及方便...
Python装饰器探究——装饰器参数
Nisen
2016-12-18
阅读 3 分钟
4.9k
示例中我们编写的装饰器 json_output 只接受一个隐式参数——即被装饰的方法,在使用此装饰器时本身看上去是并没有参数的。然而有时候需要让装饰器自身带有一些需要的信息,从而使装饰器可以使用恰当的方式装饰方法。比如上面的例子中,我们想通过向装饰器传入不同的参数来控制输出结果的缩进(indent)和排序(sort)。我们可...
Python 装饰器执行顺序迷思
Nisen
2016-12-17
阅读 3 分钟
31.3k
上面代码先定义里两个函数: decotator_a, decotator_b, 这两个函数实现的功能是,接收一个函数作为参数然后返回创建的另一个函数,在这个创建的函数里调用接收的函数(文字比代码绕人)。最后定义的函数 f 采用上面定义的 decotator_a, decotator_b 作为装饰函数。在当我们以1为参数调用装饰后的函数 f 后, decotator_a, ...
Python CSV模块简介
Nisen
2016-12-10
阅读 2 分钟
8.1k
默认的情况下, 读和写使用逗号做分隔符(delimiter),用双引号作为引用符(quotechar),当遇到特殊情况是,可以根据需要手动指定字符, 例如:
理解线程3 c语言示例线程基本操作
Nisen
2016-12-04
阅读 7 分钟
2k
通过 res = pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED); 将属性设置为脱离状态(PTHREAD_CREATE_DETACHED),即不能通过调用 pthread_join 来获得另一个线程的退出状态
Python 外部函数调用库ctypes简介
Nisen
2016-12-01
阅读 6 分钟
6.3k
一直对不同语言间的交互感兴趣,python和C语言又深有渊源,所以对python和c语言交互产生了兴趣。最近了解了python提供的一个外部函数库 ctypes, 它提供了C语言兼容的几种数据类型,并且可以允许调用C编译好的库。这里是阅读相关资料的一个记录,内容大部分来自官方文档。
Python logging 模块简介
Nisen
2016-11-27
阅读 4 分钟
4.5k
logging 模块提供了一系列标准的日志等级: DEBUG, INFO, WARNING, ERROR, CRITICAL, 顾名思义可以大致看出它们各自的使用情况。 logging 模块设置的默认等级时 WARNING, 这意味着默认情况下,日志级别为 WARNING, ERROR, CRITICAL 的日志会被记录,而 DEBUG, INFO 的日志会被忽略。
Python文章推荐1
Nisen
2016-11-27
阅读 1 分钟
2k
分享最近看到的python相关的几篇好文(我只是想偷懒) 形象解释了什么是GIL [链接] 知乎上 Pythonic 相关 [链接] [链接] [链接] evil "eval" [链接]
Python os.walk() 简介
Nisen
2016-11-26
阅读 4 分钟
4.3k
os.walk目录遍历 每个月都有那么几天想划水,又到划水的日子了,今天分享的是刚在处理遍历目录相关用到的相关方法。 os.walk os.walk的参数如下: {代码...} 其中: top是要遍历的目录。 topdown是代表要从上而下遍历还是从下往上遍历。 onerror可以用来设置当便利出现错误的处理函数(该函数接受一个OSError的实例作为参...
Python 提高班 hello world (2016.11.05)
Nisen
2016-11-25
阅读 1 分钟
2k
所有的事从hello world开始。这个博客系列叫做“Python提高班”,是为了向大学时期看的“09dota提高班”致敬,通过那一系列视频我才切切实实地学会dota这款很棒的游戏,以及顺利荒废了大学大好的时光(手动滑稽)。然而我目前水平并不足以写一系列帮助别人提高python水平的文章,所以这里其实是我每天自己学到的python相关知识...
Python locale 多语言模块和我遇到的坑
Nisen
2016-11-25
阅读 5 分钟
11.3k
locale 这个单词中文翻译成地区或者地域,其实这个单词包含的意义要宽泛很多。locale 是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。通常情况下它可以按照涉及使用习惯分为12大类:
Python 探测图片文件类型
Nisen
2016-11-23
阅读 2 分钟
3.5k
探测图片类型 今天遇到一个小问题,如何探测图片的文件类型。总结如下: python magic magic 模块的github地址在这, 可以用来方便地探测文件类型,使用示例如下,可以方便地探测一个文件或是字节流文件。 {代码...} imghdr python提供的标准库 imghdr 可以用来确定图片的类型,参见这里。API如下: {代码...} 简单的例子...
python双向链表的疑问(Question)
Nisen
2016-11-23
阅读 4 分钟
2.2k
问题 在看 collections.OrderedDict 的源码时,对于它如何构造有序的结构这一部分不是很理解,代码如下: {代码...} 主要是对于初始化里和set方法里的做法不清楚, wtf doing here…: {代码...} 后来在网上提问并且自己查询了相关资料后明白这是个带哨兵的双向链表的实现,关于双向链表的知识自己补了下,可以参见这里 和 ...
Python 有序字典简介
Nisen
2016-11-21
阅读 2 分钟
22.6k
有序字典-OrderedDict简介 示例 有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。参见下面的例子: {代码...} 运行结果如下: {代码...} 可以看到通常字典不是以插入顺序遍历的。 相等性 判断两个有序字段是否相等(==)需要考虑元素插入的顺序是否相等 {代码...} 运行结果如...
Python linecache模块
Nisen
2016-11-21
阅读 1 分钟
4.5k
今天分享一个python的小模块: linecache, 可以用它方便地获取某一文件某一行的内容。而且它也被 traceback 模块用来获取相关源码信息来展示。用法很简单:
理解线程2 信号量和互斥量 理解线程同步
Nisen
2016-11-20
阅读 4 分钟
3k
当两个线程同时执行时,不可避免同时操作同一个变量或者文件等,所以需要有一组机制来确保他们能正确的运行:信号量和互斥量。信号量可以分为最简单的“二进制信号量”和更通用的“计数信号量”。信号量通常用来保护一段代码,使其每次只能被一个执行线程运行,这种情况下需要用到二进制信号量。有时候希望可以允许有限数目...
Python 代码优化技巧(一)
Nisen
2016-11-20
阅读 3 分钟
2.7k
对于and,应该把满足条件少的放在前面,这样当对于大量判断时, 满足条件少的情况直接回导致其后其他表达式不会计算从而节约时间(因为 False and True 还是 False)
Python 性能分析工具简介
Nisen
2016-11-18
阅读 6 分钟
9.5k
总会遇到一个时候你会想提高程序执行效率,想看看哪部分耗时长成为瓶颈,想知道程序运行时内存和CPU使用情况。这时候你会需要一些方法对程序进行性能分析和调优。
理解线程1 C语言示例的程序
Nisen
2016-11-16
阅读 2 分钟
2.4k
根据 pthread_create 要求, thread_function 只有一个指向void的指针作为参数,返回的也是指向void的指针。当创建新的线程后,新线程在 thread_function 中开始执行,打印自己的参数。原有线程在确保新线程启动后调用 pthread_join 函数等到线程结束,并且将新线程的返回值存在 thread_result 指针里。新线程可以直接访...
Python 信号处理 signal 模块
Nisen
2016-11-16
阅读 3 分钟
17.4k
最近在看Linux signal 相关内容,signal可以被用来进程间通信和异步处理。Python标准库提供了signal包可以用来处理信号相关。这里讨论的是Unix系统中Python的signal模块。
Python 频繁请求问题: [Errno 104] Connection reset by peer
Nisen
2016-11-14
阅读 2 分钟
63.8k
今天工作上有个需求,数据库有个表有将近3万条url记录,每条记录都是一个图片,我需要请求他们拿到每个图片存到本地。一开始我是这么写的(伪代码):