-凯发k8国际

`
qepwqnp
  • 浏览: 101633 次
  • 性别:
  • 来自: 成都
最近访客
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 65)
    • ( 47)
    存档分类
    最新评论
    文章列表
    这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@ip“,这样的日志文件第天生成一个。所以,我们只要编历这些日志文件,将所有的登陆信息提取出来,并重新组织数据格式就可以了。用python写一个分析工具非常简单,你会说,用glob获取所有的日志文件,然后对每个日志文件都open(logfile),再一行一行的读取;或者用os.walk,也很简单。其实,标准库提供了另一个辅助模块,我们可以非常方便的完成这个工作,那就是fileinput。下面我们就通过fileinput来编历所有的d盘下的文 ...
    • 2010-11-03 14:10
    • 浏览 1758
    好久没写这系列的文章了,我越来越喜欢用python了,它在我的工作中占据的比例越来越大。废话少说,直接进入主题。 anydbm允许我们将一个磁盘上的文件与一个“dict-like”对象关联起来,操作这个“dict-like”对象,就像操作dict对象一样,最后可以将“dict-like”的数据持久化到文件。对这个"dict-like"对象进行操作的时候,key和value的类型必须是字符串。下面是使用anydbm的例子: #coding=utf-8 import anydbm def createdata(): try: ...
    • 2010-10-29 15:09
    • 浏览 2308
    用python写的一个守护者,核心的代码不到10行。这个方法是由同事想到的,我把核心的代码提出来,真是太cool了: import os, subprocess def run(): while true: tasklist = os.popen('tasklist').read() for path, exe in [os.path.split(line.strip()) for line in open('config') if line.strip()]: if exe not in tasklis ...
    • 2010-10-23 16:33
    • 浏览 1015
    这两天在写gm工具,使用wxpython开发,gm工具需要与web服务器进行简单的交互,web服务器是用.net写成。一些关键的数据在传输的过程中进行了加密。.net有非常完整的加密库,使用也很方便,翻箱倒柜从以前的代码中整了一些对称加密算法出来。而python标准模块只提供一些hash加密算法,没有提供私钥加密与共钥加密算法,但是借助于开源社区强大的威力,可以很方便的找到加密库。从网上找了一pydes模块,它实现了des与tripledes算法,经过简单的测试,用.net加密,用python解密或者用python加密,用.net解密没有任何问题。写这篇文件,做个标记,以后再用到类似的应 ...
    • 2010-09-16 17:27
    • 浏览 1360
    原文出版:http://www.darkbull.net/ 在最近的项目中,使用了大量的boost::shared_ptr。在游戏服务器中,有时候同一数据块要发送给不同的连接(例如a玩家的一个行走消息包要发给所有附近的玩家),如果为每个连接都拷贝一份数据,显的代价比较大且难以维护,想想发送完数据之后还要释放这些数据块,极易出错,而且性能也不佳。使用智能指针,只需要一份数据块的拷贝,并且不需要去管理内存的释放。但这几天,我又在想,boost::shared_ptr号称是线程安全的,那么在低层维护对象的引用计数时,必定有加琐/解琐。如果频繁的对智能指针进行复制,性能开销也不能忽略。我现在对 ...
    • 2010-08-16 00:10
    • 浏览 1797
    (www.darkbull.net) 今天打算将python集成到项目中作为脚本语言,主要用于处理字符串与网络交互(如发送邮件,提交http请求等)。boost.python组件提供了非常方便的接口,使python集成到c/c 项目中变得十分容易。今天在运行以前写的例子时,发现无法运行,不管是在python中调用c 扩展库还是在c 中调用python。在python中调用c 扩展模块,提示的错误是:dll load failed: 找不到指定的模块。而在c 中调用python,则提示找不到python25.dll。哦,这个错误提醒了我,原来,我的boost是比较早前编译的,那时电 ...
    • 2010-08-08 22:29
    • 浏览 1345
    为了实现varchar型的字段序号递增,我每次插入数据要先找出数据库中序号最大的那个再加1,可是对   varchar进行order   by   时,得不到正确结果,如   varchar里,‘100’<'99'   怎么实现转化   另外,我只比较varchar的后几位,那个怎么截取后几位再进行int转化再排序呢?   回答1: select   *   from   yourtable   order   by   cast(youcol   as   int) 回答2: order   by   convert(int,   字段) 回答3: 但是你的列里面只能是数字组 ...
    • 2010-06-24 16:31
    • 浏览 3765
    • 分类:数据库
    原文地址:http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html#trx 翻译: darkbull(www.darkbull.net) 示例代码:mysqldemo.7z 译者注:该教程是一篇介绍如何使用c 操作mysql的入门教程,内容简单易用。我对原文中的一些例子进行了修改,并新添加了部分例子,主要目标是更简单明了的向读者介绍如何操作mysql数据库。本人也是mysql的初学者,错误也在所难免,欢迎拍砖! 这篇教程将一步一步引导您如何去构建和安装mysql ...
    • 2010-06-10 14:54
    • 浏览 2605
    可以使用宏定义没有返回值的“函数”。例如: #define printmax(a, b) \ do \ { \ int x = a, y = b; \ printf("max: %d\n", x > y ? x : y);\ } while (0) // ... printmax(3, 4); 这样的“函数”与真正意义上的函数有本质的区别,因为宏是一个编译前行为,仅仅是编译前对文本进行替换。在python源码中,经常可以看到下面类似的宏定义: #define foo(x) \ ...
    • 2010-06-06 23:40
    • 浏览 845
    原文链接:http://blog.gulu77.com/?p=59 严格来说不单是css就能令ie浏览器崩溃(crash),而要配合相应的xhtml架构。到现时为止发现有两种正常写法及一种错误结构分别导致会ie6、ie7崩溃(crash),至于原因我尝试寻找过答案但至今还没找到…如你有这方面的认识或更详细的资料很希望你能分享! 1 crash ie6 code demo:http://blog.gulu77.com/demo/200808/crash_ie6.html 此bug只存在ie6中,当伪类为 a:active 时同样会遇到此问题
    • 2010-06-06 12:58
    • 浏览 912
    《c专家编程》第三章介绍了如何分析复杂的声明,讲的非常不错。对于作者介绍的分析复杂声明的方法,我没有完全掌握,不过,我有我自己的一套方法来解析复杂的声明,正所谓条条大道通罗马,只要结果一样,必须在乎过程呢。今天在网上找了几个复杂的声明,练练手(声明的例子全部来自网络,原谅出处未详)。记下此文,作个标记,待日后回味。 int (*func)(int *p) 这个就不解释了,每本c语言参考书上都会有的。作为一个c/c 程序员还不会的话,说明你已经out了~~_~~ int (*func)(int *p, int (*f)(int*)) func是一个指针 ...
    • 2010-05-23 21:31
    • 浏览 619
    atexit模块很简单,只定义了一个register函数用于注册程序退出时的回调函数,我们可以在这个回调函数中做一些资源清理的操作。 注:如果程序是非正常crash,或者通过os._exit()退出,注册的回调函数将不会被调用。 我们也可以通过sys.exitfunc来注册回调,但通过它只能注册一个回调,而且还不支持参数。所以建议大家使用atexit来注册回调函数。但千万不要在程序中同时使用这两种方式,否则通过atexit注册的回调可能不会被正常调用。其实通过查阅atexit的源码,你会发现原来它内部是通过sys.exitfunc来实现的,它先把注册的回调函数放到一个 ...
    • 2010-04-19 21:47
    • 浏览 812
    urllib模块提供的上层接口,使我们可以像读取本地文件一样读取www和ftp上的数据。每当使用这个模块的时候,老是会想起公司产品的客户端,同事用c 下载web上的图片,那种“痛苦”的表情。我以前翻译过libcurl教程,这是在c/c 环境下比较方便实用的网络操作库,相比起libcurl,python的urllib模块的使用门槛则低多了。可能有些人又会用效率来批评python,其实在操作网络,或者在集群交互的时候, 语言的执行效率绝不是瓶颈。这种情况下,一个比较好的方法是,将python嵌入到c/c 中,让python来完成一些不是核心的逻辑处理。又扯远了,废话少说,开始urlli ...
    • 2010-04-16 15:13
    • 浏览 814
    写了个图片蜘蛛人玩玩,抓了几个网页试试,感觉不不错。核心的代码可能20行也不到,简洁明了,嘻嘻。废话少说,翠花,上代码~~ #coding=utf-8 import os import sys import re import urllib url_reg = re.compile(r'(http://[^/\\] )', re.i) img_reg = re.compile(r']*?src=([\'"])([^\1]*?)\1', re.i) def download(dir, url): '''下载网页中的图片 ...
    • 2010-04-10 23:32
    • 浏览 720
    filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单。python标准库还提供了difflib模块用于比较文件的内容。关于difflib模块,且听下回分解。 filecmp定义了两个函数,用于方便地比较文件与文件夹: filecmp.cmp(f1, f2[, shallow]): 比较两个文件的内容是否匹配。参数f1, f2指定要比较的文件的路径。可选参数shallow指定比较文件时是否需要考虑文件本身的属性(通过os.stat函数可以获得文件属性)。如果文件内容匹配,函数返回true,否则返回false。 filecmp. ...
    • 2010-04-08 10:53
    • 浏览 1065
    global site tag (gtag.js) - google analytics
    网站地图