良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

Linux解决python报错ImportError No module named MySQLdb

最近在CentOS上执行需要操作MySQL的Python脚本时,报错ImportError No module named MySQLdb

本以为缺模块只是很简单的事情,没想到还是花了不少时间,总结下解决的方法如下:

系统:CentOS 6.4

Python版本:2.7.6


阅读全文...

sed按条件多行合并为一行

其实就是一个多行合并为一行的问题, 仔细看看, 可以理解为当读取到lib关键字的时候倒序排列成一行, 这里我们利用G这个函数, 其目的就是把hold space里的内容追加到当前pattern中, 第一行时G追加hold space里的内容到pattern space后, 中间用'\n'连接, 当时hold space里没有内容, 其实就是添加了一个换行符而已, 然后继续执行命令, 没有匹配到lib关键字, 不执行花括号里的操作, 执行h函数操作, 把当前行的内容(就是第一行的内容后面多加了一个换行符)覆盖到hold space里, 第二行时执行G函数, 这时候pattern space里的内容已经变成了gb=line1\nclone=line1, 这时候也没有匹配到lib, 那么继续执行h, 这样就相当于倒序排列了内容. 执行到第四行, 匹配到lib时候, 我们把所有的换行符替换为空格, 并且打印内容, 执行n操作, 把stream执行到下一行, 用下一行的内容来覆盖hold space里的内容, 这样就相当于清楚了之前hold space里的记录.

阅读全文...

php获得可靠的精准的当前时间 ( 通过ntp服务器 )

有一种情形是这样子的,比如机票业务中的订票流程,我们需要一个非常可靠的当前时间来支持,尽管大多数服务器的时间是非常准确的,我们使用time()来获取的时间是可靠的,但未免会有不确切的情况,也有的服务器由于未开启ntp(Network Time Protocol ) 来进行时间同步,再由于硬件环境等因素,导致时间五花八门,这在通常,也就差个几分钟、最多几个小时的情况是无可厚非的,因为在同一个网站使用的是同一个 时间,可是有的时候这样很糟糕。在internet上,有免费专门提供UTC时间校正的授时服务器,使用NTP协议,这个可以参考前面的链接来获取更多知 识。他提供的时间误差在20ms左右(不要说在数据传输过程中会耗费的时间不等,NTP早就考虑到了这一点),因此通过这种授时服务器,我们就能得非常可 信的当前时间。

阅读全文...

当你输入一个网址发生的那些事

作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。

本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~


阅读全文...

SWFUpload使用指南

SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大。以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得到官网上看它的文档,真是太烦了。所以索性就把它的用法记录下来,也方便英语拙计的同学查看,利人利己,一劳永逸。(ps:SWFUpload早就不再更新了,官网也打不开了,推荐大家使用Plupload来代替SWFUpload,Plupload以html5上传方式为主,在不支持html5的浏览器中会自动回退到flash的上传方式,功能灰常强大!使用方法可以看我写的《前端上传组件Plupload使用指南》)

阅读全文...

vi/vim的使用

Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在Dos上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
      Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
      Vi没有菜单,只有命令,且命令繁多。Vi有三种基本工作模式:命令行模式、文本输入模式和末行模式。

阅读全文...

Python编码时应该注意的情况

在编程过程中,多了解语言周边的一些知识,以及一些技巧,可以让你加速成为一个优秀的程序员。

对于Python程序员,你需要注意一下本文所提到的这些事情。你也可以看看Zen of Python(Python之禅),这里面提到了一些注意事项,并配以示例,可以帮助你快速提高。


1. 漂亮胜于丑陋

实现一个功能:读取一列数据,只返回偶数并除以2。下面的代码,哪个更好一些呢?
#----------------------------------------
halve_evens_only = lambda nums: map(lambda i: i/2, filter(lambda i: not i%2, nums))
#----------------------------------------
def halve_evens_only(nums):

   return [i/2 for i in nums if not i % 2]


阅读全文...