用lxml来解析大型xml文件+命令行中的python

August 7th, 2010 DiamRem 1 comment

上周被布置了一个人物,要解析一个大约有600MB左右的xml文件,从中提取所需的信息然后输出成一个csv文件。从来没有做过类似东西的我,加上不太熟悉的python、linux和vim,这样一个简单的东西花了一天半才解决,不过解决的还算比较完美吧,用lxml这个库,原本以为要至少10几分钟的解析过程其实只用了1分钟左右,说起来,还是c比较强大啊,lxml的底层使用c实现的,换成python恐怕就够呛了。好了废话不多说,讲讲lxml的用法和我在做这个任务里碰到的几个问题吧,权当复习和备份。

用lxml载入xml文件

lxml是c中的libxml的python实现,在保证效率的情况下,为程序员免去了内存管理方面的麻烦,具体介绍大家还是移步它的官网吧。

首先在python里import lxml的etree模块,然后用etree里的parse函数从文件中解析xml,解析得到的是一个ElementTree的实例,用这个实例的getroot函数就能得到xml中的root。root是对象Element的一个实例,对这个root可以做indexing,即用过root[n]可以得到root下相应的子节点,这些子节点同样也是Element的实例,所以通过root[n][m]就可遍历各个节点。

>>>from lxml import etree

>>>tree = etree.parse(open(“file_name”,“rb”))

>>>root = tree.getroot()

另外,对一个Element还可以进行iterate操作,iterate会依次遍历Element下的所有子节点、子节点的子节点,然后按照顺序,返回一个所有节点的序列。

如果我们有这样一个xml:

Read more…

Categories: Programming/编程

关于网络电台的一些思考(一)- 作为背景音乐的电台

July 3rd, 2010 DiamRem No comments

昨天开会,收获很多,自己一边听一边想,也思考了很多。这一系列文章会把自己关于网络电台和相关的服务、模式还有体验等等方面的思考都记录下来。没想到写着写着会有这么多,会分成两到三部分完成,分别是“作为背景音乐的电台”,“社会化的电台”和“电台商业化”。

互联网上的服务大致可以分为两类。一类是原生于网络的,在这个产品出来之前,现实生活中并没有原型。如Twitter,如4square(其实这个可以算“到此一游”的数字化……)。另外一类就是把已经有的原型互联网化,如网络购物等等。基本上这类服务都是将原来的名字前面加一个“网络”的标签。网络电台很明显的属于后者,更进一步讲,网络电台是把传统电台中的音乐节目剥离出来做成一个独立的服务。

截图00(via)

Read more…

Apple文案翻译小试

June 27th, 2010 DiamRem No comments

这周看了一篇文章叫做《Apple文案初品》,从文案撰写的角度谈了一下Apple在宣传语方面的英语驾驭能力。作者分析了数个让人眼前一亮的文案之后,发出了这样的感慨“汉语有这种情况么?有,而且比英文传神得多。可是我们发现自己没有人家用英文这么顺畅,这也是我们这代人不善文言修辞的痛。”的确,结合我的翻译经验,外加这篇文章里面举出的案例,我的感觉是英语其实是一门非常有趣的语言,在各种看似僵化和复杂的问法背后,是几乎无限的灵活运用的潜力。相比较起来,中文,特别是现在大陆使用的书面简体中文,缺乏这种活泼的性格。除了悲伤逆流成河这种矫情和文思如尿崩这种调侃,我们很难记住有哪些让人眼前一亮的广告词或者口号了。今天接着文案出品一文还冒着热气,我就试着看看能能把那些精妙的Apple口号喊成同样不错的中文

via

Read more…

Web Design For Developers 翻译 第一章

June 16th, 2010 DiamRem 1 comment

自从回来之后就没有认真更新过这里了,学校的事情和GRE十分之闹心,我都差点忘记自己还有个博客了。上周跟图灵的编辑沟通了一下,又拿到了一本书的翻译活。跟上次比,这次是一整本书,内容自己也更熟悉一些,希望能在三个月时间里弄出来一本高质量的书稿吧。书的名字是Web Design For Developers,讲了一些很实用的网页设计技巧和技术,适合所有阶段的人阅读。这里先放出第一章的试译,权当预告和广告。同时代表着本博的每周一更新的正式恢复。

Read more…

Categories: Internet/互联网

那一枚优雅的哑炮

May 7th, 2010 DiamRem No comments

“等等,我用我的exwife炸飞它。”

然后他就悲剧了。

看完之后我觉得这个桥段简直就是在隐喻这电影本身的。一枚被吹嘘的无比nb让人万分期待的暑期档开幕片,最后不过是一枚哑弹而已。

影片除了小罗伯特和那个Hammer的老板,其他人全是偷师京剧中的一个概念——脸谱化。

小辣椒完全没有了上一部中的干练形象,整一个聒噪无比的事儿妈,最后看她一脸疑惑的深情凝视那个闪烁的炸弹的时候,我甚至希望那个机器人早点爆炸了超度之就好。

斯嘉丽是一个完美的肉弹花瓶,连角色都那么完美,大胸大臀加细腰,无疑是把宅男们吸引到电影院的一个好噱头。她要是成了反派,对付钢铁侠都不用打的,脱字诀即可。不过说实话,现在还有谁在说拉丁语?

那个用星云锁链的人能算的上反派么?最开始被秒一次,最后被秒一次,可惜了米基那么酷的造型和一嘴生硬的俄罗斯口音了。

Hammer的老板演的很好,属于看着就想打的那种。

小萝卜头唐尼显然再这部片子里面对了更大的敌人。不是星云锁链,而是毒素。他一边继续用剪刀手摆着造型一边喝着叶绿素,一边奢侈糜烂的炫耀他的实力、跑车、全息投影和手势操作的工作间一边自暴自弃。最后在他要挂的时候,独眼龙套专门跑出来说,不要怕,你上面有人。然后萝卜头就很NB的自己修了一个粒子加速器来造元素,然后继续跑出去秒人。可是编剧们懒到给新元素起名字的力气都没有。导演很明显的想让这个人丰富一点,然后很传统的扯出了父子情谊和世界和平之类的东西,无奈都只是挠痒痒的程度,远没有第一步里炸人——被炸——变NB——再去炸人这条线路酣畅淋漓丰满动人。

这个片子估计就是起承转结中的那个承,大可将之视为一部有点拖拉的预告片,附送香车美女和纯钢能飞的套装,这几个调调基本上就能把如我一般的机械科技外加美女控骗到电影院里赚钱就可以了。我们还是期待钢铁侠大战绿巨人好了。

最后,预告片里美女带手套打飞机和小辣椒啃头盔的镜头为毛不见了呢?

Categories: Review/点评