
语言: python
北雨南萍
长期专注于实时音视频通信技术、音视频处理技术,包括基于webrtc的音视频通信解决方案,基于ffmpeg的媒体处理解决方案。
展开
-
python torndb使用简介
一、torndb概述torndb是一个轻量级的基于MySQLdb封装的一个模块,其是tornado框架的一部分。其项目主页为:https://github.com/bdarnell/torndb 。从tornado3.0版本以后,其已经作为一个独立模块发行了。可以通过easy_install 或pip的方式直接安装。二、连接与查询1、创建连接import t转载 2015-09-24 11:14:02 · 9329 阅读 · 0 评论 -
python获得线程调用函数的返回值
threading.Thread 并没有显式的提供获取线程调用函数返回值的方法,需求自己实现。使用数据库是一个办法: 可以让子线程将数据写到数据库中,消费线程再去数据库中读取数据;如果不想用数据库,可以使用类的全局变量来做传递,示例代码如下:import osimport threadingclass SubThread(): data = {}原创 2014-12-16 22:14:31 · 13752 阅读 · 0 评论 -
Tornado异步任务的实现之一
前言刚开始使用用tornado时都很迷惑:tornado不是标榜异步非阻塞解决10K问题的嘛?但为什么我在handler中有一个步骤是耗时时,整体的响应就慢下了呢?是不是torando根本就不好用。其实是你用错了,因为你没有将你的耗时任务使用tornado的异步功能实现。下面就各种torndo响应请求,进行耗时任务处理时的各种异步场景一一总结一、异步HTTP请求的实原创 2014-12-16 22:07:15 · 4535 阅读 · 0 评论 -
在tornado中使用celery实现异步任务处理之二
三、tornado结合RabbitMQ实现异步任务处理3.1 安装环境1. 安装tornado见文章《CentOS6.4安装python2.7.3环境和Tornado》2. 安装 tornoda-celerytornado-celery的安装很简单:$ pip install tornado-celeryDownloading/unpacking tornado原创 2014-12-15 23:09:13 · 2665 阅读 · 0 评论 -
在tornado中使用celery实现异步任务处理之一
一、简介tornado-celery是用于Tornado web框架的非阻塞 celery客户端。通过tornado-celery可以将耗时任务加入到任务队列中处理,在celery中创建任务,tornado中就可以像调用AsyncHttpClient一样调用这些任务。Celery中两个基本的概念:Broker、BackendBroker : 其实就是一开始说的 消息队列原创 2014-12-15 23:07:05 · 12081 阅读 · 3 评论 -
Python中time模块详解
Python中time模块详解发表于2011年5月5日 12:58 a.m. 位于分类我爱Python在平常的代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。这篇文章,主要讲解time模块。在开始之前,首先要说明这几点:在Python中,通常有这几种方式来表示时间:1)时间戳转载 2014-10-20 17:43:43 · 848 阅读 · 1 评论 -
Python的程序在Linux后台运行
1.nohup 命令nohup 命令 用途:LINUX命令用法,不挂断地运行命令。 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。 在注销后使用 nohup 命令运行后台中的程序。转载 2014-10-23 15:10:20 · 1541 阅读 · 0 评论 -
Python的信号处理与程序退出
如果写的Python程序是多线程或多进程的,就涉及到程序安全退出的问题。一、多进程程序的退出需要先将子进程逐个杀掉后再退出主进程,不然会导致主进程退出(CTRL+C)后子进程不退出而继续运行。二、多线程程序的退出需要在启动多线程时将线程的"Daemon"属性设置为"True"(默认为"False"),否则程序会死锁而无法退出(CTRL+C);下面是示例代码原创 2014-10-22 10:26:23 · 3299 阅读 · 0 评论 -
Python print函数用法,print格式化输出
Python print函数用法,print 格式化输出使用print输出各型的 . 字符串 . 整数 . 浮点数 . 出度及精度控制strHello = 'Hello Python' print strHello#输出结果:Hello Python#直接出字符串1.格式化输出整数python print也支持参数格式化,与C言的printf转载 2014-09-02 16:01:17 · 2898 阅读 · 0 评论 -
python命令行参数解析实例
闲言少述,直接上代码#!/usr/bin/env python##import jsonimport getopt, sysdef usage(): print sys.argv[0] + ' -i irt -s status' print sys.argv[0] + ' -i irt -n seg -t stime' pr原创 2014-09-02 11:28:14 · 1145 阅读 · 0 评论 -
python中的map, filter, reduce函数
三个函数比较类似,都是应用于序列的内置函数。常见的序列包括list、tuple、str。1.map函数map函数会根据提供的函数对指定序列做映射。定义: map(function, sequence[, sequence, ...]) -> list解析: 函数的第一个参数是一个函数,function可以理解为是一个一对一或多对一函数,转载 2014-12-08 12:23:10 · 742 阅读 · 0 评论 -
python异步socket编程之二
三、异步client与异步server的通信1. 服务端代码pythone socket的server段,开放三个端口:10000,10001,10002.例子中是每个server绑定一个端口,测试的时候需要分别开3个shell,分别运行.这太麻烦了,就分别用三个Thread来运行这些services#!/usr/bin/env python## -*- codin原创 2014-12-09 17:53:39 · 5069 阅读 · 0 评论 -
python异步socket编程之一
异步网络能极大地提高程序的并行处理能力,所以写了一个专题来总结python中的异步通信。一、同步client与同步server的通信1.1. 《python的socket通信实例》中的例子1. TCP server端代码#!/usr/bin/env python## -*- coding:utf-8 -*-# File: sync_socket_server原创 2014-12-09 17:45:29 · 4408 阅读 · 0 评论 -
Ubuntu下安装python的torndb开发环境
目标:在Python中通过“import torndb”,去访问mysql数据库。一、在Ubuntu上安装MySQL1. 安装命令: $ sudo apt-get install mysql-server $ apt-get isntall mysql-client $ sudo apt-get install libmysqlclient-dev 安装过程转载 2015-09-21 14:31:02 · 1451 阅读 · 0 评论 -
python+Eclipse+pydev环境搭建
本文重点介绍使用Eclipse+pydev插件来写Python代码, 以及在Mac上配置Eclipse+Pydev 和Windows配置Eclipse+Pydev 编辑器:Python 自带的 IDLE简单快捷, 学习Python或者编写小型软件的时候。非常有用。 编辑器: Eclipse + pydev插件1. Eclipse是写JA转载 2015-08-16 23:11:59 · 701 阅读 · 0 评论 -
python进程池编程实例
本实例基于Python的进程池类multiprocessing.Pool,并对每个进程的结果进行检测;#!/usr/bin/env python#coding=utf-8"""File: test-pool.pyAuthor: HankLast modified: 2015/6/15 11:40Desc:"""from multiproces原创 2015-07-07 15:00:40 · 961 阅读 · 0 评论 -
python多进程并发编程
Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。一、单进程编程如果我们新建少量进程,可以如下:import multiprocessingimport time def func(msg): for i in xrange(3原创 2015-06-16 10:32:47 · 3740 阅读 · 0 评论 -
python下setuptools安装
python下的setuptools带有一个easy_install的工具,在安装python的每三方模块、工具时很有用,也很方便。安装setuptools前先安装pip,请参见《python下pip的安装》1. 下载:在它的官网可以下载到安装包:https://pypi.python.org/pypi/setuptools页面最下面的是它的安装链接,如:$原创 2015-01-19 22:21:16 · 9613 阅读 · 1 评论 -
python打包指南
最佳开源 Python 应用程序通常会提供出色的打包功能。我们首先将了解有关什么是打包及其基本实现的详细信息。然后更进一步探索与打包相关的版本控制与发布工作。一个成功的开源项目的其核心功能是打包功能,而出色的打包功能的关键在于版本控制。因为项目是开源的,所以您希望发布的包能够体现出开源社区所具备的优点。不同的平台与语言具有不同的打包机制,本文主要讲述的是 Python 及其打包转载 2015-01-15 21:21:20 · 803 阅读 · 0 评论 -
制作python模块安装包
python的第三方模块越来越丰富,涉及的领域也非常广,如科学计算、图片处理、web应用、GUI开发等。当然也可以将自己写的模块进行打包或发布。一简单的方法是将你的类包直接copy到python的lib目录,但此方式不便于管理与维护,存在多个python版本时会非常混乱。现介绍如何编写setup.py来对一个简单的python模块进行打包。一、编写模块进入项目目录#cd /转载 2015-01-16 15:05:55 · 1235 阅读 · 0 评论 -
深入理解Tornado——一个异步web服务器
本人的第一次翻译,转载请注明出处:http://www.cnblogs.com/yiwenshengmei/archive/2011/06/08/understanding_tornado.html原文地址:http://golubenco.org/?p=16这篇文章的目的在于对Tornado这个异步服务器软件的底层进行一番探索。我采用自底向上的方式进行介绍,从轮巡开始,向上一直到转载 2014-12-09 17:57:21 · 1452 阅读 · 0 评论 -
supervisord管理进程详解
Supervisor是由python语言编写,基于linux操作系统的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。Supervisor类似于monit,monit和supervisor的一个比较大的差异是supervisor管理的进程必须由supervisor来启动,monit可以管理已经在运行的程序;supervisor还要求管理的程序是原创 2015-01-14 23:25:24 · 3744 阅读 · 0 评论 -
AttributeError 'module' object has no attribute 'handlers'--Python子模块导入问题
想使用python的logging模块记录日志,并使用RotatingFileHandler来处理日志以便于在日志文件超过指定的大小后会重新生成新的日志文件。基本代码如下:import logging logger = logging.getLogger('mylogger') logger.setLevel(logging.INFO) fh=lo转载 2014-09-01 17:26:03 · 3923 阅读 · 0 评论 -
python命令行参数解析示例应用
一、sys.argv[]包含命令行参数的字符串列表,通过下标获取参数。例如:#!/usr/bin/python # Filename: using_sys.py import sys print 'The command line arguments are:' for i in sys.argv: print i pri转载 2014-09-01 18:30:05 · 1214 阅读 · 0 评论 -
python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
一、JSON简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语原创 2014-08-06 09:58:16 · 21307 阅读 · 1 评论 -
Json概述以及python对json的相关操作
一、什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用转载 2014-08-05 18:13:38 · 978 阅读 · 0 评论 -
python模块及包的导入
一 .module通常模块为一个文件,直接使用import来导入就好了。可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。二. package通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目转载 2014-07-24 11:33:42 · 965 阅读 · 0 评论 -
python 在不同层级目录import 模块的方法
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种常用情况:1. 主程序与模块程序在同一目录下:如下面程序结构:`-- src |-- mod1.py |-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1 或转载 2014-07-24 15:27:17 · 5384 阅读 · 1 评论 -
Python logging模块详解
一、简单将日志打印到屏幕:[python] view plaincopyimport logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('err转载 2014-07-24 14:20:23 · 1723 阅读 · 0 评论 -
tornado的GET POST方法示例
例子说明get和post的方法使用:一、示例用的GET方法:import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world")application原创 2014-07-19 11:33:25 · 7173 阅读 · 0 评论 -
python下pip的安装
一、下载pip并安装# wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.4.tar.gz#md5=ca790be30004937987767eac42cfa44a# tar -zxf pip-1.4.tar.gz# cd pip-1.4# python setup.原创 2014-07-17 15:39:33 · 1545 阅读 · 0 评论 -
python升级安装后的yum的修复
升级python版本后,运行yum# yum -y install openssl提示如下:There was a problem importing one of the Python modulesrequired to run yum. The error leading to this problem was: No module named yumPl原创 2014-07-16 11:44:09 · 1955 阅读 · 0 评论 -
CentOS6.4安装python2.7.3环境和Tornado
Centos6.4默认的python环境是2.6.6。我们可以自己安装Python 2.7.3。但是值得注意的是,我们必须不能破坏系统的环境。因为几个关键的实用应用程序依赖于Python2.6.6。如果替换了系统的python环境就会发生很多难以预见的错误,导致要重装系统。在没有破坏系统的python环境的情况下安装Python 2.7.3。执行以下命令,请使 用root的原创 2014-07-16 14:10:27 · 4260 阅读 · 0 评论 -
Python正则表达式指南
1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果转载 2014-08-06 11:25:31 · 904 阅读 · 0 评论 -
轻量级web server Tornado代码分析
最近在做项目,使用了Tornado这个用python写的由Facebook开源出来的web服务器框架。这确实是一个轻量级的框架,只需要几行代码,直接运行脚本,就可以建立起一个server了。Tornado使用了epoll方式,在linux环境下,用了epoll的,总是受到更多的关注,呵呵。这比我们销售短信项目中使用的c++ Poco库使用的poll模型效率要高一些。再加上python语言本身强大的转载 2014-07-15 21:51:54 · 1131 阅读 · 0 评论 -
比较详细Python正则表达式操作指南(re使用)
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块,当然偶尔你还是可能在老代码里发现其踪影。就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在P转载 2014-09-04 16:44:35 · 1354 阅读 · 2 评论 -
Python中的多进程处理
众所周知,python本身是单线程的,python中的线程处理是由python解释器分配时间片的;但在python 2.6中吸收了开源模块,开始支持系统原生的进程处理——multiprocessing.注意:这个模块的某些函数需要操作系统的支持,例如,multiprocessing.synchronize模块在某些平台上引入时会激发一个ImportError1)Proc转载 2014-08-29 12:00:24 · 865 阅读 · 0 评论 -
Python多进程编程
Python在2.6版本新引进了多进程机制一、 简介多进程在Python中是一个包,它支持使用和线程模块类似的API来创建进程。 多进程包支持本地和远程并发,并有高效的GIL锁机制。因为这些原因,多进程模块允许程序员在指定机器上实现完整的多进程开发,无论是Unix还是Windows.Warning:这个包的某些功能要求在运行的OS上能实现共享信号量机制,如果没有这个翻译 2014-08-28 11:29:10 · 7746 阅读 · 0 评论 -
python实现的基于TCP的JSON数据通信
用Python写的一个多线程TCP通信实例,实现了JSON数据的传输。闲言少述,直接上代码一、客户端#!/usr/bin/env python# -*- coding:utf-8 -*-#import socketimport threadingimport SocketServerimport jsondef client(ip, port,原创 2014-08-27 10:01:31 · 15544 阅读 · 0 评论 -
简明 Python 编程规范v2
赖勇浩(http://laiyonghao.com)注:之前发布一篇《简明 Python 编程规范》(见:http://blog.youkuaiyun.com/lanphaday/article/details/2834883),本是我给当时所在的公司制定的,发表到博客的时候,对齐等问题都有一些错误,还包括一些错别字。到后来,我又有做过修正。大概在 2010 年 8 年,我又由 C++ 开发转转载 2014-08-27 15:06:56 · 702 阅读 · 0 评论