#导入模块
import codecs import os import PyPDF2 as PyPDF2 #建立一个装pdf文件的数组 files = list()
#遍历该目录下的所有文件 for filename in os.listdir("C:\Python27\第二十八课 数据处理"):
#如果是以.pdf结尾的文件,则追加到数组中 if filename.endswith(".pdf"): files.append(filename) #以数字进行排序(数组中的排列顺序默认是以ASCII码排序,当以数字进行排序时会不成功) newfiles = sorted(files,key=lambda d: int(d.split(".pdf")[0])) #进入该目录 os.chdir("C:\Python27\第二十八课 数据处理")
#生成一个空白的PDF文件 pdfwriter = PyPDF2.PdfFileWriter() for item in newfiles:
##以只读方式依次打开pdf文件 pdfreader = PyPDF2.PdfFileReader(open(item,"rb")) for page in range(pdfreader.numPages):
# #将打开的pdf文件内容一页一页的复制到新建的空白pdf里 pdfwriter.addPage(pdfreader.getPage(page)) #生成all.pdf文件 with codecs.open("all.pdf","wb") as f:
#将复制的内容全部写入all.pdf文件中 pdfwriter.write(f)
图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴。PIL (Python Imaging Library)是 Python 中最常用的图像处理库,如果你是python2.x,可以通过以下地址进行下载:http://www.pythonware.com/products/pil/index.htm,找到相对应的版本进行下载就可以了。
注意:PIL模块在python3.x中已经替换成pillow模块,直接使用pip3 install pillow即可安装模块,导入时使用from PIL import Image
mode : RGB(true color image),此外还有,L(luminance),CMTK(pre-press image)。
crop((left, upper, right, lower)):从图像中提取出某个矩形大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。
Image的几何处理:
out = im.resize((128, 128)) #调整图片大小
out = im.rotate(45) #逆时针旋转 45 度角。
out = im.transpose(Image.FLIP_LEFT_RIGHT) #左右对换。
out = im.transpose(Image.FLIP_TOP_BOTTOM) #上下对换。
out = im.transpose(Image.ROTATE_90) #旋转 90 度角。
out = im.transpose(Image.ROTATE_180) #旋转 180 度角。
out = im.transpose(Image.ROTATE_270) #旋转 270 度角。
from PIL import Image
image = Image.open("a.jpg")
print(image.format,image.size,image.mode)
运行:
JPEG (951, 714) RGB
from PIL import Image image = Image.open("a.jpg")
image.show()
运行之后会打开图片:
运行之后会多一个b.jpg文件,打开查看。from PIL import Image image = Image.open("a.jpg") print(image.format,image.size,image.mode) crop = (415,280,535,420) #讲图片的((415, 280), (415, 420), (535, 420), (280, 420))所画出来的区域进行裁剪 new = image.crop(crop)
new.save("b.jpg") #将图片保存为b.jpg new.show() #打开图片
运行:from PIL import Image #打开文件 image = Image.open("a.jpg")
#定义截取的坐标 crop = (415,280,535,420)
#截取 new = image.crop(crop)
#讲截取的图片旋转180度 new2 = new.transpose(Image.ROTATE_180)
#将旋转后的图片放回坐标位置 image.paste(new2,crop)
#显示图片 image.show()
运行之后会显示缩放后的图片。from PIL import Image #打开文件 image = Image.open("a.jpg")
#获取文件的长和宽 (x, y) = image.size
#定义缩放后的长 newx = 600
#根据比例计算缩放后的宽 newy = int(y*newx/x)
#缩放图片 out = image.resize((newx, newy), Image.ANTIALIAS)
#显示 out.show()