[python]modules for kindle[update...]

pdf.py

from PyPDF2 import PdfFileReader,PdfFileWriter
from PIL import Image

import os,shutil

def exact2jpg(fromfile):
  path=fromfile.replace('.pdf','')
  os.system('pdftk '+fromfile+' burst '+path)
  filelist=os.listdir(path)
  filelist.sort()
  for pdf in filelist:
    print pdf
    if pdf.split('.')[-1]!='pdf':
      continue;
    os.system("convert "+path+'/'+pdf+' '+pdf.replace('pdf','jpg'))

def jpgs2pdf(path):
  filename=path.split('/')[-1]+'.pdf'
  writer=PdfFileWriter()
  
  filelist=os.listdir(path)
  filelist.sort()
  for imName in filelist:
    if imName.split('.')[-1] in ['jpg','jpeg','JPG','JPEG']:
      os.system('convert '+path+'/'+imName+' '+path+'/'+imName.split('.')[0]+'.pdf')
  os.system('pdftk '+path+'/*.pdf cat output '+path+'.pdf')


pic.py

import PIL.Image as Image
import os
import shutil

def to2part(path,isturn=False):
  name=path.split("/")[-1]
  print name
  
  imtypes=["png","PNG","jpg","jpeg","JPEG"]
  filelist=os.listdir(path)
  filelist.sort()
  for im in filelist:
    if im.split(".")[-1] in imtypes:
      draw=Image.open(path+"/"+im)
      h1box=(0,0,draw.size[0],(draw.size[1])/2)
      h2box=(0,(draw.size[1])/2,draw.size[0],draw.size[1])
      s1box=(0,0,(draw.size[0])/2,draw.size[1])
      s2box=((draw.size[0])/2,0,draw.size[0],draw.size[1])
      if draw.size[0]<draw.size[1]:
        new1=draw.crop(h1box)
        new2=draw.crop(h2box)
      else:
        new1=draw.crop(s1box)
        new2=draw.crop(s2box)
      if isturn:
        new1,new2=new2,new1   #some Manga needs 2<-1
      new1.save(path+"/"+im.split(".")[0]+"_1.jpg","jpeg")
      new2.save(path+"/"+im.split(".")[0]+"_2.jpg","jpeg")
      os.remove(path+'/'+im)


def cropMode(path,real):
  
  filelist=os.listdir(path)
  filelist.sort()

  isok=False
  box=()

  real=Image.open(real)
  real.show()

  print u'Image Magick->View->Resize...->'
  print u"1366x714+0+0: 1366x714"

  viewstring=raw_input("view parameters:")
  paraView=[int(viewstring.split('x')[0]),int(viewstring.split('x')[1])]

  paraReal=list(real.size)

  for no in range(1,5):
    print u"This is the "+str(no)+u"rd time"
    print u"Image Magick->Transfrom->crop"
    print u"like: 234x245+56+78"

    parastring=raw_input("crop parameters:")
    paraWin=[float(parastring.split('x')[0]),float(parastring.split('x')[1].split(
          '+')[0]),float(parastring.split('+')[1]),float(parastring.split('+')[2])]
    
    paraMode=[paraWin[0]/paraView[0]*paraReal[0],paraWin[1]/paraView[1]*paraReal[1],
            paraWin[2]/paraView[0]*paraReal[0],paraWin[3]/paraView[1]*paraReal[1]]
    
    box=(int(paraMode[2]),int(paraMode[3]),int(paraMode[2]+paraMode[0]),
       int(paraMode[3]+paraMode[1]))

    example=real.crop(box)
    example.show()

    print u"show like this"

    for imName in filelist:
      im=Image.open(path+'/'+imName)
      if im.size!=real.size:
        continue;                         
      re=im.crop(box)
      re.save(path+'/'+imName.split('.')[0]+'_'+str(no)+'.jpg','jpeg')

    ok=raw_input("To the next?[y/n]:")

    if ok!='y':
      break;

  filelist=os.listdir(path)
  filelist.sort() 
  
  for imName in filelist:
    if imName.split('.')[0]+'_1.png' in filelist:
      os.remove(path+'/'+imName)

def mangaOrder(path,mark):
  filelist=os.listdir(path)
  filelist.sort()
  for im in filelist:
    num=im.split('.')[0].split(mark)[-1]
    if num is None:
      break
    new='0'*(4-len(num))+num+'.png'
    os.rename(path+'/'+im,path+'/'+new) 

def jpg2png(path):
  filelist=os.listdir(path)
  filelist.sort()
  for imName in filelist:
    if imName.split('.')[-1] in ['jpg','jpeg','JPG','JPEG']:
      im=Image.open(path+'/'+imName)
      im.save(path+'/'+imName.split('.')[0]+'.png','png')
      os.remove(path+'/'+imName)

txt.py

import os
import re

def enskipatternlines(fromfile,tofile,patternlist=None):
  orign=open(fromfile,'r')
  context=orign.readlines()
  skips=[]
  single='  '
  text=''
  for lineno in range(len(context)-1):
    text=context[lineno].replace('\n','')
    flag=0
    if patternlist!=None:
      for pattern in patternlist:
        if re.match(pattern,text)!=None:
          flag=1
          break
    if flag==1:
      continue
    single=single+text
    nextcon=context[lineno+1]
    if nextcon=='\n' or not nextcon[0].islower():
      single=single+'\n'
      skips.append(single)
      single='  '
    else:
      single=single+' '
  single=single+text
  skips.append(single)
  changed=file(tofile,'w')
  changed.writelines(skips)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值