Python
文章平均质量分 57
chosen0ne
互联网码农,对Linux,分布式计算和存储,编译器,nginx,脚本语言感兴趣
展开
-
通过python在两台linux服务器间传递文件
通过python -m SimpleHTTPServer可以开启一个http服务器,默认端口是8000,-m选项指示python将module作为脚本运行。这样就可以共享一台linux上的某个文件夹,在对应的文件夹下运行上面的命令,其他linux主机就可以通过http访问这个目录,进行下载。可以用curl http://220.193.1.101:8000/a.tx原创 2011-10-26 12:45:13 · 4576 阅读 · 1 评论 -
分布式定时任务框架——python定时任务框架APScheduler扩展
如果将定时任务部署在一台服务器上,那么这个定时任务就是整个系统的单点,这台服务器出现故障的话会影响服务。对于可以冗余的任务(重复运行不影响服务),可以部署在多台服务器上,让他们同时执行,这样就可以很简单的避免单点。但是如果任务不允许冗余,最多只能有一台服务器执行任务,那么前面的方法显然行不通。本篇文章就向大家介绍如何避免这种互斥任务的单点问题,最后再介绍一下基于APScheduler的分布式定时任原创 2012-08-30 17:46:57 · 20246 阅读 · 6 评论 -
Python定时任务框架APScheduler
APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。基于这些功能,我们可以很方便的实现一个python定时任务系统,写python还是要比java舒服多了。1. 安装 安装过程很简单,可以基于easy_install和源码。原创 2012-08-08 14:10:21 · 71203 阅读 · 4 评论 -
一个简单的解释器——python实现
一直以来都对编译器和解析器有着很大的兴趣,也很清楚一个编译器的概念和整体的框架,但是对于细节部分却不是很了解。我们编写的程序源代码实际上就是一串字符序列,编译器或者解释器可以直接理解并执行这个字符序列,这看起来实在是太奇妙了。本文会用python实现一个简单的解析器,用于解释一种小的列表操作语言(类似于python的list)。其实编译器、解释器并不神秘,只要对基本的理论理解之后,实现起来也比较简原创 2012-09-27 17:13:17 · 9953 阅读 · 0 评论 -
Python语法解析器PLY——lex and yacc in Python
PLY是lex和yacc的python实现,包含了它们的大部分特性。PLY采用COC(Convention Over Configuration,惯例优于配置)的方式实现各种配置的组织,比如:强制词法单元的类型列表的名字为tokens,强制描述词法单元的规则的变量名为t_TOKENNAME等。本文主要是对PLY做一个基本的介绍。一. 词法分析1. 词法单元的类型列表(token list)原创 2012-10-16 22:56:50 · 45528 阅读 · 4 评论 -
Linux下获得本机ip
java版private InetAddress getLocalIp() throws SocketException{ Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()){ NetworkInterface ni = e.nextEleme原创 2011-09-30 14:41:38 · 3139 阅读 · 0 评论 -
Python日志输出——logging模块
1. logging介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。 logging模块与log4j的机制是一样的,只是具体的实现细节不同。模块提供logger原创 2012-03-06 00:18:44 · 165800 阅读 · 13 评论 -
Thrift in python
Thrift官网上的文档很少,从网上搜到的也大都千篇一律,即使是《Thrift: the missing guide》对如何构建python的server和client也没有进行详尽讲述。本博特意看了下thrift提供的python lib,对书写相应的server和client进行了简单的总结,如有错误,欢迎大家指正。1. Thrift network stack Transport Trans原创 2014-04-02 16:07:08 · 15361 阅读 · 2 评论 -
mod_wsgi + pymssql访问SQL Server阻塞
mod_wsgi + pymssql访问SQL Server阻塞的解决方案原创 2014-06-16 12:41:06 · 2710 阅读 · 1 评论 -
财经行情API架构优化实践
从3月份到5月份一直在做行情API的架构优化,在这个过程中遇到了很多问题,也尝试了很多的解决方案,但都没有寻找到一个最佳的方案,最后基于API的特点自己实现了一个基于共享内存的key-value存储touchdb。这里,和大家一起分享一下。1. 行情API及旧架构介绍 先简单介绍一下行情API,让大家对这个应用的特性、需求有一个足够的了解,才能清楚了解后续的优化过程。原创 2012-07-04 11:46:49 · 6323 阅读 · 0 评论 -
Python读写mongo时区问题
mongo中的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间。所以,在php中向mongo读写MongoDate或者java向mongo读写Date时,会根据当前系统的时区与GMT进行相互转化。我猜上述转化应该是由php和java的mongo驱动实现的。比如,在java或php中,时间2011-12-27 17:57:46.原创 2011-12-27 18:10:08 · 6845 阅读 · 0 评论 -
Linux下安装python模块时缺少Python.h
sudo apt-get install python-dev转载 2011-12-20 15:49:05 · 5869 阅读 · 0 评论 -
Tokyo Cabinet及其Python接口的安装
1. 安装Tokyo Cabinet tc依赖与zlib(直接上网搜下,现在官网打不开。。。)和bzip2,直接源码安装即可。 wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.47.tar.gz tar zvxl tokyocabinet-1.4.47.tar.gz原创 2012-01-12 10:38:39 · 9543 阅读 · 0 评论 -
JSON美化输出
JSON字符串就是一堆字符,查看起来很不方便。这里介绍两种方法查看格式化输出之后的JSON。1. chrome插件,JSONView安装之后,可以自动识别JSON字符串。2. 直接使用python的模块json.tool输入,echo '{"a": 1, "b": 2}' | python -m json.tool看起来是不很爽?原创 2012-03-01 13:19:06 · 11581 阅读 · 0 评论 -
Redis的Python客户端redis-py
1. 安装1. redis-py a. 使用easy_installsudo easy_install redis b. 源码安装git clone https://github.com/andymccurdy/redis-py.gitcd redis-pypython setup.py install2. Parser安装原创 2012-03-05 13:38:47 · 53918 阅读 · 2 评论 -
Python日期操作
1. 日期输出格式化 所有日期、时间的api都在datetime模块内。 1. datetime => stringnow = datetime.datetime.now()now.strftime('%Y-%m-%d %H:%M:%S') 输出2012-03-05 16:26:23.870105 strftime是原创 2012-03-05 17:42:21 · 5788 阅读 · 0 评论 -
Python包管理工具easy_install安装
easy_install是python的包管理工具,可以方便的下载、安装、更新python包,并可以自动处理相关依赖。类似于ruby的gem,java的maven,nodejs的npm。安装方法有两种:1. wget http://peak.telecommunity.com/dist/ez_setup.py 然后python ez_setup.py2. 按照官网的安装方法,根据p原创 2012-01-19 14:20:30 · 18383 阅读 · 0 评论 -
fql——File Query Language
用python实现了一门小语言FQL,用类似SQL的语法,查询文件的相关信息。希望大家可以玩的开心原创 2015-01-23 23:18:12 · 4448 阅读 · 0 评论