Category Archives: python

Python中更改程序运行目录为程序所在目录

一般情况下不需要做这一步,程序运行时默认的运行目录是程序所在的目录,但是有部分IDE会更改这一设置。所以,可以添加以下代码:

1
2
3
import os

os.chdir(os.path.abspath(os.path.dirname(__file__)))

Python处理pdf文件的包

  • pyPdf
    纯Python的PDF处理工具。
    主页:http://pybrary.net/pyPdf/
    主要功能:
    • 读取文档信息(标题,作者,……)
    • 逐页分割文件
    • 逐页合并文件
    • 裁剪页面
    • 合并多个页面为一个页面
    • 加密、解密PDF文件
  • ReportLab
    强大的生成PDF文件的库。
    主页:http://www.reportlab.com/software/opensource/rl-toolkit/
    主要功能:

    • 创建专业的PDF文件
    • Real document layout engine (Platypus) (这个不知道怎么翻译,大概是很NB的页面布局引擎)
    • 浮动对象,如段落,标题行,表格,图像,图形等
    • 支持嵌入Type-1字体或TTF字体
    • 支持亚洲,希伯来和阿拉伯字符
    • 支持任何流行格式的位图图像
    • 支持矢量图形
    • 包括一个可重用的基本图形库
    • 可扩展的widget库
    • Layed architecture, written in Python
    • 包含简单示例和更复杂的工具
    • 允许使用任何数据源
    • 源代码完全公开
    • 强大的社区支持
    • 跨平台
  • PDFMiner
    主要用于分析PDF文本内容的工具。
    主页:http://www.unixuser.org/~euske/python/pdfminer/index.html
    主要功能:

    • 纯Python(2.4以上版本)
    • 解析,分析和转换PDF文档
    • 支持PDF-1.7标准(几乎完美支持)
    • 支持CJK语言和竖向书写
    • 支持多种字体格式(Type1,TrueType,Type3和CID)
    • 基本的加密支持(RC4)
    • PDF转HTML(一个简单的Web转换器)
    • 摘要(TOC)抽取
    • 标记抽取内容
    • 重构原始布局

简单讲,如果只折腾现成的PDF文件,用pyPdf,如果要生成新内容的PDF文件用ReportLab,如果要分析现有PDF文件的内容,用PDFMiner。

不过,生成PDF方面,我更愿意使用LaTeX系列的工具,这样质量有保证,乱码之类的问题比较少。

Email自动应答查询器

标题不是特别准确,我想要的是这么个东西,比如考试完了,学生以学号1234为主题,发Email到abc这个邮箱,系统收到邮件后,在数据库中查询到成绩后,回复学生。

有没有这样的软件?

或者有没有这样的Wordpress插件,可以查询指定数据表中的指定字段,匹配成功则返回对应的另一字段的值?

py2exe几点备注

  • 不支持import Image as IM这样的导入方式,也不支持from Image import xxx,只能是import Image。
  • 如果是scipy.ndimage这样的二级库,也只能import scipy.ndimage。
  • 如果源文件是utf-8编码,涉及到文件路径中有汉字的,可以使用filename=u’一个文件.txt’.encode(‘gbk’)这样的方式进行转码。

btw: 本文使用VimRepress发布,详情见:Vim中写Wordpress博客 – VimRepress | apt-blog.net IT民工养成计划 PT博客

备忘:非官方Python扩展库Win版二进制包下载网站

主要是与科学计算相关的扩展库,有32和64位,主要支持2.x,部分包支持Python 3。
地址:Python Extension Packages for Windows – Christoph Gohlke

可以使用通配符生成文件列表的glob模块

glob模块:该模块可以使用通配符生成文件列表。

1
2
3
import glob
list = glob.glob('/home/raohongfu/*.php')
print list

来源:http://lampeter123.javaeye.com/blog/546152

Fcitx 4.0 郑码码表

下载:Fcitx 4.0 郑码码表

官方网站上那个zm.mb中,词序比较乱,很多词的编码是错的,比如“浏览”的编码应该是vskm,而不是vskd,组词规则也是错的。

我修改这个是以winzm为基础,并添加了fcitx 4.0中自带的wbx中的词组。

btw: 2005年前后,用pascal写过一个win码表转到scim码表的mb2scim,花了不少时间,这次用的是python,轻松+愉快。上次差不多400多行代码,这次不到60行,当然完成的功能略有不同。
另外,如果3.6用着没啥毛病的朋友,就不要折腾了,4.0似乎还不是特别稳定。

SciPy的图像处理模块ndimage

之前用python处理图像主要是调用PIL库,PIL库不够用了,再转成numpy对象自己处理。刚才发现SciPy中有一个ndimage模块,包括了常用的图像处理函数。具体的内容可以参考:http://docs.scipy.org/doc/scipy/reference/ndimage.html

这个模块的前身应该是numpy的numarray.nd_image模块。

调用u.nu的api缩短网址

#!/usr/bin/python
#coding: utf-8

import sys
import urllib2

api_address = 'http://u.nu/unu-api-simple?url='

for org_url in sys.argv[1:]:
    request = urllib2.urlopen(api_address + urllib2.quote(org_url))
    short_url = request.read()
    if short_url.startswith('http'):
        print org_url, '–> ', short_url
    else:
        print 'Error'

使用lxml解析html文件

之前一直搞错了,实际上只需要使用lxml.html模块,读入html文件后,直接调用xpath定位所需要的内容就行了,不再需要etree什么的了。具体看下面的例子:

01 #coding: utf-8
02
03 from lxml import *
04 import lxml.html as H
05 import urllib2
06
07 def getart(url):
08     f = urllib2.urlopen(url)
09     content = f.read()
10    
11     art = []
12     doc = H.document_fromstring(content)
13     p = doc.xpath(‘/html/body/div[2]/div[2]/div/div/ul/li/div[2]/p’)
14     for i in p:
15         tmp = i.text_content()
16         tmp = tmp.encode(‘utf-8′)
17         tmp = tmp.replace(\r, \n)
18         art.append(tmp)
19     return art
20
21 if __name__ == ‘__main__’:
22     urls = ['http://www.douban.com/group/topic/12018319/',
23             'http://www.douban.com/group/topic/12018319/?start=100']
24     outfile = open(‘zheda.txt’, ‘w’)
25     for url in urls:
26         art = getart(url)
27         for item in art:
28             outfile.write(item+\n)
29     outfile.close()

附:浙大夜惊魂6月26日更新至101章
hotfile: http://hotfile.com/dl/50704792/39ca85e/626101.txt.html
xun6: http://is.gd/d4Ym0

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