开发学院软件开发Python 应用 Python 解决一些实际问题 阅读

应用 Python 解决一些实际问题

 2010-09-22 12:02:06 来源:WEB开发网   
核心提示: import sysimport osimport string1headers=[("JFIF", 6,应用 Python 解决一些实际问题(3), "jpg"), ("GIF", thisext)31fid1 = open(imgn
import sys
import os
import string
1    headers=[("JFIF", 6, "jpg"), ("GIF", 0, "gif"), ("PNG", 1, "png")]
2    marker=[]
3    filename = "d:\\article\\ppt\\NORFA_COD.ppt"
  try:
4    fid = open(filename, 'rb')
  except:
5    sys.exit(1)
6    numlin = len(fid.readlines())
7    fid .seek(0)
8  i = 0; s = 0
9  curlin = fid.readline()
  while i < numlin:
    for flag, offset, ext in headers:
10    index = string.find(curlin, flag)
    if index < 0:
11      continue
    else:
12      pos = s + index -offset
13      marker.append((pos, ext))
14  s = s + len(curlin)
15  curlin = fid.readline()
16  i += 1

以上代码首先把要处理的文件以二进制格式逐行读入(9句),然后在其中寻找有没有包含1句headers里的图像标识。如果没有找到,就读取下一行(11句)。如果发现的话,就把图像的起始位置和标识记录在一个字典marker里(12-13句)。在扫描完整个文档后,可以得到一个包含图像信息的字典marker。

有了marker里的信息,就可以进行图像的保存工作了。这部分的代码是:

17  fid.seek(0)
18  j = len(marker)
19  imgnum = 0
  if j == 0:
20    print "No images included in the document"
21    sys.exit(1)
  for i in range(0, j):
22    if i == j-1:
23      info = marker[i]
24      thispos = info[0]
25      thisext = info[1]
26      nextpos = s
27      gap = nextpos - thispos
28      fid.seek(thispos)
29      data = fid.read(gap)
30      imgname = "imgname%02d.%s" % (i, thisext)
31      fid1 = open(imgname, 'wb')
32      fid1.write(data)
33      fid1.close()
34      imgnum += 1
    else:
35      info = marker[i]
36      thispos = info[0]
37      thisext = info[1]
38      nextinfo = marker[i+1]
39      nextpos = nextinfo[0]
40      gap = nextpos - thispos
41      fid.seek(thispos)
42      data = fid.read(gap)
43      imgname = "imgname%02d.%s" % (i, thisext)
44      fid1 = open(imgname, 'wb')
45      fid1.write(data)
46      fid1.close()
47      imgnum += 1
48  fid.close()
49  print "%02d imgaes have benn extracted" % imgnum

编缉推荐阅读以下文章

  • Python 测试框架: 寻找要测试的模块
  • 使用 Python 实现多进程
  • Python 测试框架: 用 Python 测试框架简化测试
  • 也玩有道难题的双立方数问题:Python 版解法
  • Python 2.6.2的字节码指令集一览
  • Python 2.6.2的.pyc文件格式
  • 以Python为例讨论高级编程语言程序的wire format与校验
  • python操作sharepoint对象模型
  • 【python实战】获取双色球开奖数据之简易版
  • python 抓取分析 SGMLParser 实例

上一页  1 2 3 4 5  下一页

Tags:应用 Python 解决

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接