feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Python

摘要:import tracebacktry: raise ValueErrorexcept: tb = traceback.format_exc()else: tb = "No error"finally: print tbOriginal:http://stackoverflow.com/questions/4564559/get-exception-description-and-stack-trace-which-caused-an-exception-all-as-a-st 阅读全文

posted @ 2012-12-07 12:18 feisky 阅读(252) 评论(0) 推荐(0) 编辑

摘要:chardet可以来帮助我们检测字符串的编码类型,使用如下:s ="utf-8 字符串"chardet.detect(s)得到的结果如:{'confidence':0.87624999999999997,'encoding':'utf-8'}这里需要提醒一下,因为字符串本身就有可能包含多种编码,因此chardet给出一个可信度(confidence),需要用户自己去判断和使用。但不管怎么,有总比没有强。 阅读全文

posted @ 2012-12-07 12:18 feisky 阅读(1878) 评论(0) 推荐(0) 编辑

摘要:字符串内码的转换,是开发中经常遇到的问题。在Java中,我们可以先对某个String调用getByte(),由结果生成新String的办法来转码,也可以用NIO包里面的Charset来实现。在Python中,可以对String调用decode和encode方法来实现转码。比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作s.decode(‘gbk’).encode(‘utf-8′)可是,在实际开发中,我发现,这种办法经常会出现异常:UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 30664- 阅读全文

posted @ 2012-12-06 21:49 feisky 阅读(1195) 评论(0) 推荐(0) 编辑

摘要:root@ubuntu:~# echo '{"foo": "lorem", "bar": "ipsum"}'| json_pp { "bar" : "ipsum", "foo" : "lorem"}root@ubuntu:~# echo '{"foo": "lorem", "bar": "ipsum"}'| python -m 阅读全文

posted @ 2012-12-06 16:19 feisky 阅读(388) 评论(0) 推荐(0) 编辑

摘要:比较容易记忆的是用内置的setl1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2 还有一种据说速度更快的,没测试过两者的速度差别l1 = ['b','c','d','b','c','a','a']l2 = {}.fromkeys(l1).keys()print l2 这两种都有个缺点,祛除重复元素后排序变 阅读全文

posted @ 2012-12-06 16:16 feisky 阅读(15326) 评论(0) 推荐(0) 编辑

摘要:今天,谈谈python中的数据模型,当然你可以不了解这些东西,照样可以写出漂亮的python代码,但是“知其然知其所以然”是我的作风,总是不明白python的一些机制,心里很不爽。结合python的doc和一篇文章,差不多明白了python的哲理。我觉得有必要将python中的文档的一些重要语句拿出来。Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects.Every object has a 阅读全文

posted @ 2012-10-06 14:17 feisky 阅读(579) 评论(0) 推荐(0) 编辑

摘要:#!/usr/bin/pythondef get_info(): import sys f=sys._getframe() return (f.f_back.f_code.co_name, f.f_back.f_lineno)if __name__=='__main__': print get_info() 阅读全文

posted @ 2012-09-05 20:52 feisky 阅读(433) 评论(0) 推荐(0) 编辑

摘要:曾经写过一个脚本在Linux系统上来获得本地的IP地址:#!/usr/bin/env pythonimport socketimport structimport fcntlimport sysdef getip(ethname): if ethname=="": ethname="eth0" try: s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ip=socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack('256s... 阅读全文

posted @ 2012-08-24 10:17 feisky 阅读(1158) 评论(1) 推荐(0) 编辑

摘要:python epoll用法import socket, selectEOL1 = b'\n\n'EOL2 = b'\n\r\n'response = b'HTTP/1.0 200 OK\r\nDate: Mon, 1 Jan 1996 01:01:01 GMT\r\n'response += b'Content-Type: text/plain\r\nContent-Length: 13\r\n\r\n'response += b'Hello, world!'serversocket = socket.socke 阅读全文

posted @ 2012-04-10 21:28 feisky 阅读(1159) 评论(0) 推荐(0) 编辑

摘要:What is the difference between urllib and urllib2 modules of Python?You might be intrigued by the existence of two separate URL modules in Python -urllibandurllib2. Even more intriguing: they are not alternatives for each other. So what is the difference betweenurllibandurllib2, and do we need them 阅读全文

posted @ 2012-04-09 18:20 feisky 阅读(499) 评论(0) 推荐(0) 编辑

摘要:urllib.urlopen(url[, data[, proxies]]) : 创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据(玩过web的人应该知道提交数据的两种方式:post与get。如果你不清楚,也不必太在意,一般情况下很少用到这个参数);参数proxies用于设置代理(这里不详细讲怎么使用代理,感兴趣的看客可以去翻阅Python手册urllib模块)。urlopen返回 一个类文件对象,他提供了如下方法:read() , readline() , rea 阅读全文

posted @ 2012-04-09 18:18 feisky 阅读(1491) 评论(0) 推荐(0) 编辑

摘要:#!/usr/bin/pythonimportsocketimportstructimportfcntldefgetip(ethname):s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)returnsocket.inet_ntoa(fcntl.ioctl(s.fileno(),0X8915,struct.pack('256s',ethname[:15]))[20:24])if__name__=='__main__':printgetip('eth0') 阅读全文

posted @ 2012-02-04 21:00 feisky 阅读(968) 评论(0) 推荐(0) 编辑

摘要:使用Python可以用很简单的方法得到本机IP地址,不过在Windows和Linux下的方法稍有不一样的,Windows下获得IP地址的方法方法一使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip 使用gethostbyname和gethostbyname_ex两个函数可以实现import socketlocalIP = socket.gethostbyname(socket.gethostname())#得到本地ipprint "local ip:%s "%localIPipList = socket.gethostbynam 阅读全文

posted @ 2011-11-26 14:45 feisky 阅读(22424) 评论(2) 推荐(0) 编辑

摘要:python pdb调试python -m pdb myscript.py #注意这会重启myscript.py可以在程序中这么设置断点:import pdb; pdb.set_trace()可以修改变量的值,但是要注意,前面加上!比如要修改final的值,应该这样!final="newvalue"支持的命令: p 打印变量 n next step 细点运行 c continue l list a args 打印当前函数的参数 condition bpnumber [condition] clear/disable/enable 清除/禁用/使能断点 q quitpytho 阅读全文

posted @ 2011-11-12 20:36 feisky 阅读(5264) 评论(0) 推荐(0) 编辑

摘要:1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正... 阅读全文

posted @ 2010-12-15 17:14 feisky 阅读(745) 评论(0) 推荐(1) 编辑

摘要:说明 使用Python的字符串处理和正则表达式处理实现了一个删除C/C++源程序中所有注释和空行的小脚本。 使用字符串处理 使用正则表达式使用示例待处理文件:处理结果:在使用Python正则表达式处理的时候,有一个问题,就是没法删除文件中的空行。如果想删除空行,可能还得一行行读进来,把长度为0的行不保存。这是目前感觉到的难点。 阅读全文

posted @ 2010-12-09 15:30 feisky 阅读(5334) 评论(3) 推荐(1) 编辑

无觅相关文章插件,快速提升流量