在后台回复【阅读书籍】

即可获取python相关电子书~

Hi,我是山月。

之前给大家介绍了python处理excel、word、ppt的相关教程,不知道大家学的怎么样?

在后台回复【自动化办公】即可查看全部自动化办公教程哦~

今天来给大家介绍下python处理pdf文档的一个库--PyPDF2

PyPDF2 是源自 pyPdf 项目的纯 Python PDF 工具包。它擅长处理PDF文档本身,比如对 PDF 文档进行分割、 合并、 插入等操作

官网:https://pythonhosted.org/PyPDF2/index.html

安装:pip install pypdf2

01

基础知识

PyPDF2 一共有4大主模块:PdfFileReader、PdfFileWriter、PdfFileMerger、PageObject,分别是读、写、合并、页面对象。

1、PdfFileReader

1、导入

from PyPDF2 import PdfFileReader

2、获取 PdfFileReader 对象

PdfFileReader(stream, strict=True, warndest=None, overwriteWarnings=True)参数:
stream : 一个 File 对象或支持类似于 File 对象的标准读取和查找方法的对象。也可以是表示 PDF 文件路径的字符串。
strict (bool) : 确定是否应该警告用户所有的问题,也会导致一些可纠正的问题是致命的。默认值为True。
warndest : 记录警告的目标(默认为 sys.stderr)。
overwriteWarnings (bool) :确定是否使用自定义实现覆盖 Python 的 warnings.py 模块(默认为 True)。

比如想读取将进酒.pdf内容:

pdfFileReader = PdfFileReader(open('将进酒.pdf', 'rb')) # 获取PdfileReader对象
# 也可以:pdfFileReader = PdfFileReader('将进酒.pdf')

3、一些方法与属性

4、实例

现在有一个2页的将进酒.pdf文件:

from PyPDF2 import PdfFileReader
pdfFileReader = PdfFileReader(open('将进酒.pdf', 'rb'))documentInfo = pdfFileReader.documentInfo
print(documentInfo) # 检索文档信息
'''
{'/Author': '是山月呀', '/Comments': '', '/Company': '', '/CreationDate': "D:20220312161040+08'10'",
'/Creator': 'WPS 文字', '/Keywords': '', '/ModDate': "D:20220314130926+08'00'", '/Producer': '',
'/SourceModified': "D:20220312161040+08'10'", '/Subject': '', '/Title': '', '/Trapped': '/False'}
'''
print(documentInfo.author)  # 检索文档的作者--->> 是山月呀pages = pdfFileReader.numPages  #计算文件的页数
print(pages)    # --->> 2page = pdfFileReader.getPage(1) #检索第2页页面
print(page)
'''
{'/Type': '/Page', '/Parent': IndirectObject(2, 0), '/MediaBox': [0, 0, 595.276, 841.89], '/Rotate': 0,
'/Resources': {'/Font': {'/KSPF1': IndirectObject(29, 0), '/KSPF2': IndirectObject(31, 0)}}, '/Contents': IndirectObject(33, 0)}
'''pageLayout = pdfFileReader.pageLayout   # 获取页面布局
print(pageLayout)    # --->> Noneis_Encrypted = pdfFileReader.isEncrypted    # 判断是否加密
print(is_Encrypted)    # --->> False

2、PdfFileWriter

1、导入

from PyPDF2 import PdfFileWriter

2、初始化PdfFileReader 对象

PdfFileWriter = PdfFileWriter()

3、一些方法与属性

1、文件写入
write(stream)参数:
stream:要将文件写入的对象。
2、添加页面
addPage(page)参数:
page:要添加到文档的页面,应该是 PageObject 的一个实例
3、添加空白页
addBlankPage(width=None, height=None)参数:
width (float) – 页面的宽度。
height (float) –页面的高度。如果未指定页面大小,则使用最后一页的大小。
如果未指定页面大小并且上一页不存在,则会引发PageSizeNotDefinedError。
4、添加书签
addBookmark(title, pagenum, parent=None, color=None, bold=False, italic=False, fit='/Fit', *args)参数:
title (str): 用于此书签的标题。
pagenum (int) :此书签将指向的页码。
parent :对父书签的引用以创建嵌套书签。
color (tuple) : 书签的颜色为从 0.0 到 1.0 的红、绿、蓝元组
bold (bool):书签为粗体
italic (bool) :书签是斜体
fit (str) : 目标页面的适合度。
5、写入读取的文档
appendPagesFromReader(reader, after_page_append=None)参数:
reader: 一个 PdfFileReader 对象
after_page_append (function):调用的回调函数
6、加密
encrypt(user_pwd, owner_pwd=None, use_128bit=True)参数:
user_pwd (str) : “用户密码”,允许在提供的限制下打开和阅读 PDF 文件。
owner_pwd (str) : “所有者密码”,允许不受任何限制地打开 PDF 文件。默认情况下,所有者密码与用户密码相同。
use_128bit (bool) : 标记是否使用 128 位加密,默认为True。为 false 时,将使用 40 位加密。
7、插入空白页
insertBlankPage(width=None, height=None, index=0)参数:
width (float) :页面的宽度。
height (float) :页面的高度。
index (int) :添加页面的位置。如果未指定页面大小,则使用最后一页的大小。
如果未指定页面大小并且上一页不存在,则会引发 PageSizeNotDefinedError
8、插入页面
insertPage(page, index=0)参数:
page (PageObject): 要添加到文档的页面,该参数是 PageObject 的一个实例。
index (int) :将插入页面的位置。
9、获取页数
getNumPages()
10、按页码检索页面
getPage(pageNumber)参数:
pageNumber (int) :要检索的页码(从0开始)
11、设置页面布局
setPageLayout(layout)参数:
layout (str):要使用的页面布局。但是设置了没有发生作用。可设置的布局有:
/NoLayout: 未指定布局
/SinglePage: 一次显示一页
/OneColumn: 一次显示一列
/TwoColumnLeft: 分两列显示页面,奇数页在左边
/TwoColumnRight:  分两列显示页面,奇数页在右边
/TwoPageLeft: 一次显示两页,奇数页在左边
/TwoPageRight: 一次显示两页,奇数页在右边
12、获取页面布局
getPageLayout()
# 也可以:
pageLayout
13、设置页面模式
setPageMode(mode)参数:
mode (str) :要使用的页面模式。但是设置了没有发生作用。可设置的页面模式有:
/UseNone: 不显示面板
/UseOutlines: 查看文档书签
/UseThumbs: 查看文档缩略图
/UseAttachments:  查看文件附件
/FullScreen: 全屏视图
/UseOC: 显示可选内容组 (OCG)
14、获取页面模式
getPageMode()
# 也可以:
pageMode
15、删除图像
removeImages(ignoreByteStringObject=False)参数:
ignoreByteStringObject (bool) :忽略 ByteString 对象的可选参数。
16、删除文字
removeText(ignoreByteStringObject=False)参数:
ignoreByteStringObject (bool) :忽略 ByteString 对象的可选参数。
17、删除链接和注释
removeLinks()

3、PdfFileMerger

1、导入

from PyPDF2 import PdfFileMerger

2、获取PdfFileMerger 对象

PdfFileMerger(strict=True)参数:
strict (bool) – 确定是否应该警告用户所有的问题,也会导致一些可纠正的问题是致命的。默认值为True。

3、一些方法与属性

1、合并
merge(position, fileobj, bookmark=None, pages=None, import_bookmarks=True)参数:
position (int):插入此文件的页码,文件将在给定编号之后插入。
fileobj:文件对象或支持类似于文件对象的标准读取和查找方法的对象,也可以是表示 PDF 文件路径的字符串。
bookmark (str):可以通过提供书签的文本来指定要在包含文件的开头应用的书签。
pages : 指定要合并的的页面范围,可以是Range 或 (start, stop[, step]) 元组
import_bookmarks (bool) : 可以通过将其指定为 False 来阻止导入源文档的书签。
2、附加
append(fileobj, bookmark=None, pages=None, import_bookmarks=True)参数:
fileobj:文件对象或支持类似于文件对象的标准读取和查找方法的对象,也可以是表示 PDF 文件路径的字符串。
bookmark (str):可以通过提供书签的文本来指定要在包含文件的开头应用的书签。
pages : 指定要合并的的页面范围,可以是Range 或 (start, stop[, step]) 元组
import_bookmarks (bool) : 可以通过将其指定为 False 来阻止导入源文档的书签。
3、添加书签
addBookmark(title, pagenum, parent=None)参数:
title (str) : 用于此书签的标题。
pagenum (int): 此书签将指向的页码。
parent:对父书签的引用以创建嵌套书签。
4、文件写入
write(fileobj)参数:
fileobj : 输出文件。可以是文件名或任何类型的类似文件的对象。
5、设置页面布局
setPageLayout(layout)参数:
layout (str) : 要使用的页面布局
6、设置页面模式
setPageMode(mode)参数:
mode (str): 要使用的页面模式。

4、PageObject

页面对象一般是通过访问 PdfFileReader 的 getPage() 方法创建的。

1、几个页面大小属性

1、artBox

一个 RectangleObject,以默认用户空间单位表示,定义页面创建者所期望的页面有意义内容的范围。

2、bleedBox

一个 RectangleObject,以默认用户空间单位表示,定义在生产环境中输出时页面内容应剪切到的区域。

3、cropBox

一个 RectangleObject,以默认用户空间单位表示,定义默认用户空间的可见区域。

当页面被显示或打印时,其内容将被剪裁(裁剪)到这个矩形,然后以某种实现定义的方式施加到输出介质上。

默认值:与 mediaBox 相同。

4、mediaBox

一个 RectangleObject,以默认用户空间单位表示,定义了要在其上显示或打印页面的物理介质的边界。

5、trimBox

一个 RectangleObject,以默认用户空间单位表示,定义修剪后完成页面的预期尺寸。

2、合并页面

1、合并页面
mergePage(page2)参数:
page2 (PageObject):要合并到此页面的页面,是 PageObject 的一个实例。
2、合并旋转页面
mergeRotatedPage(page2, rotation, expand=False)参数:
page2 (PageObject) :要合并到此页面的页面,是 PageObject 的一个实例。
rotation (float) :旋转的角度,以度为单位
expand (bool) :是否应扩展页面以适应要合并的页面的尺寸。
3、合并旋转缩放页面
mergeRotatedScaledPage(page2, rotation, scale, expand=False)参数:
page2 (PageObject): 要合并到此页面的页面,是 PageObject 的一个实例。
rotation (float): 旋转的角度,以度为单位
scale (float): 比例因子
expand (bool) :是否应扩展页面以适应要合并的页面的尺寸。
4、合并旋转缩放平移页面
mergeRotatedScaledTranslatedPage(page2, rotation, scale, tx, ty, expand=False)参数:
page2 (PageObject) : 要合并到此页面的页面,是 PageObject 的一个实例。
tx (float) :X轴平移
ty (float) :Y轴平移
rotation (float) :旋转的角度,以度为单位
scale (float) : 比例因子
expand (bool) :是否应扩展页面以适应要合并的页面的尺寸。
5、合并旋转平移页面
mergeRotatedTranslatedPage(page2, rotation, tx, ty, expand=False)参数:
page2 (PageObject): 要合并到此页面的页面,是 PageObject 的一个实例。
tx (float) :X轴平移
ty (float) :Y轴平移
rotation (float) :旋转的角度,以度为单位
expand (bool) : 是否应扩展页面以适应要合并的页面的尺寸。
6、合并缩放页面
mergeScaledPage(page2, scale, expand=False)参数:
page2 (PageObject) :要合并到此页面的页面,是 PageObject 的一个实例。
scale (float) :比例因子
expand (bool) :是否应扩展页面以适应要合并的页面的尺寸。
7、合并缩放平移页面
mergeScaledTranslatedPage(page2, scale, tx, ty, expand=False)参数:
page2 (PageObject) : 要合并到此页面的页面,是 PageObject 的一个实例。
scale (float) :比例因子
tx (float) :X轴平移
ty (float) :Y轴平移
expand (bool) : 是否应扩展页面以适应要合并的页面的尺寸。
8、合并转换页面
mergeTransformedPage(page2, ctm, expand=False)参数:
page2 (PageObject): 要合并到此页面的页面,是 PageObject 的一个实例。
ctm (tuple):包含转换矩阵操作的6元元组
expand (bool) :是否应扩展页面以适应要合并的页面的尺寸。
9、合并平移页面
mergeTranslatedPage(page2, tx, ty, expand=False)参数:
page2 (PageObject) :要合并到此页面的页面,是 PageObject 的一个实例。
tx (float) :X轴平移
ty (float) :Y轴平移
expand (bool) :是否应扩展页面以适应要合并的页面的尺寸。

3、旋转

1、顺时针旋转
rotateClockwise(angle)参数:
angle (int) : 旋转页面的角度,必须是 90 度的增量。
2、逆时针旋转
rotateCounterClockwise(angle)参数:
angle (int):旋转页面的角度,必须是 90 度的增量。

4、缩放

1、x、y轴分别缩放
scale(sx, sy)参数:
sx (float):水平轴上的比例因子。
sy (float) : 垂直轴上的比例因子。
2、x、y轴同时缩放
scaleBy(factor)参数:
factor (float): 比例因子(对于 X 和 Y 轴)。
3、缩放到指定尺寸
scaleTo(width, height)参数:
width (float):新的宽度
height (float): 新的高度

02

实例

1、添加水印

有一个将进酒.pdf文件:

现在要给它加上水印,要如何实现呢?

1、文字水印

新建一个pdf水印文件,里面是要加的水印文字,如:

代码实现:

from PyPDF2 import PdfFileReader, PdfFileWriter # 导入读、写模块
PdfFileWriter = PdfFileWriter()     # 获取PdfFileWriter对象pdf_file = PdfFileReader(open('将进酒.pdf', 'rb'))  # 要添加水印的文档
num_pages = pdf_file.getNumPages()  # 获取pdf文件的页数for i in range(num_pages):first_page = pdf_file.getPage(i)    # 获取文件的第i+1页text_watermark = PdfFileReader(open('文字.pdf', 'rb'))  # 文字水印文档page_watermark = text_watermark.getPage(0)  # 获取pdf文件第1页页面page_watermark.mergePage(first_page) # 合并两个页面PdfFileWriter.addPage(page_watermark)   # 把合并后的页面写入pdf文件PdfFileWriter.write(open('实例.pdf', 'wb'))    # 保存pdf文件

效果:

2、图片水印

添加图片水印与添加文字水印是一样的操作。

新建一个图片水印文件:

然后把代码里的文字水印文件改成图片水印文件:

from PyPDF2 import PdfFileReader, PdfFileWriter # 导入读、写模块
PdfFileWriter = PdfFileWriter()     # 获取PdfFileWriter对象pdf_file = PdfFileReader(open('将进酒.pdf', 'rb'))  # 要添加水印的文档
num_pages = pdf_file.getNumPages()  # 获取pdf文件的页数for i in range(num_pages):first_page = pdf_file.getPage(i)    # 获取文件的第i+1页text_watermark = PdfFileReader(open('图片.pdf', 'rb'))  # 图片水印文档page_watermark = text_watermark.getPage(0)  # 获取pdf文件第1页页面page_watermark.mergePage(first_page) # 合并两个页面PdfFileWriter.addPage(page_watermark)   # 把合并后的页面写入pdf文件PdfFileWriter.write(open('实例.pdf', 'wb'))    # 保存pdf文件

效果:

2、PDF合并

现在有两个pdf文件:将进酒.pdf、梦游天姥吟留别.pdf。

合并两个文档的代码实现:

from PyPDF2 import PdfFileMergerPdfFileMerger = PdfFileMerger()PdfFileMerger.append('将进酒.pdf')   # 附加将进酒.pdf内容
PdfFileMerger.append('梦游天姥吟留别.pdf')   # 附加梦游天姥吟留别.pdf内容PdfFileMerger.write(open('实例.pdf', 'wb'))

效果:

3、PDF插入

以我们刚刚的两个文件:将进酒.pdf、梦游天姥吟留别.pdf为例。

假如我们现在需要,在将进酒.pdf第一页的后面插入梦游天姥吟留别.pdf的文档内容,要如何实现呢?

代码实现:

from PyPDF2 import PdfFileMergerPdfFileMerger = PdfFileMerger()PdfFileMerger.merge(0, '将进酒.pdf')
PdfFileMerger.merge(1, '梦游天姥吟留别.pdf')PdfFileMerger.write(open('实例.pdf', 'wb'))

效果:

4、PDF分割

假设我们现在有这样一个文件:数据.pdf,它一共有6页:

现在我们把它两页两页的分割成一个文档,也就是一共分成三个文档。

代码实现:

from PyPDF2 import PdfFileReader,PdfFileWriterpdfFileReader = PdfFileReader('数据.pdf')  # 获取 PdfFileReader 对象
num_pages = pdfFileReader.getNumPages() # 获取页数for i in range(0,num_pages,2):pdfFileWriter = PdfFileWriter()page_Obj = pdfFileReader.getPage(i) # 获取第i+1页页面pdfFileWriter.addPage(page_Obj) # 添加读取的第i+1页页面page_Obj = pdfFileReader.getPage(i+1) # 获取第i+2页页面pdfFileWriter.addPage(page_Obj) # 添加读取的第i+2页页面outfile = '第%s页--第%s页.pdf'%(i+1,i+2)pdfFileWriter.write(open(outfile, 'wb'))

效果:

5、PDF删除页面

一样的,我们以数据.pdf文件为例,现在我们来删除第3页的内容。

代码实现:

from PyPDF2 import PdfFileReader,PdfFileWriterpdfFileReader = PdfFileReader('数据.pdf')  # 获取 PdfFileReader 对象
num_pages = pdfFileReader.getNumPages() # 获取页数pdfFileWriter = PdfFileWriter()for i in range(num_pages):if i != 2:    page_Obj = pdfFileReader.getPage(i) # 获取第i+1页页面pdfFileWriter.addPage(page_Obj) # 添加读取的第i+1页页面outfile = '实例.pdf'
pdfFileWriter.write(open(outfile, 'wb'))

效果:

6、PDF提取页面

一样的,我们以数据.pdf文件为例,现在我们来提取第3页的内容,并另存为一个新文件。

代码:

from PyPDF2 import PdfFileReader,PdfFileWriterpdfFileReader = PdfFileReader('数据.pdf')  # 获取 PdfFileReader 对象
num_pages = pdfFileReader.getNumPages() # 获取页数pdfFileWriter = PdfFileWriter()for i in range(num_pages):if i == 2:    page_Obj = pdfFileReader.getPage(i) # 获取第i+1页页面pdfFileWriter.addPage(page_Obj) # 添加读取的第i+1页页面outfile = '实例.pdf'
pdfFileWriter.write(open(outfile, 'wb'))

效果:

7、PDF旋转页面

我们把将进酒.pdf文档顺时针旋转90°。

代码:

from PyPDF2 import PdfFileReader,PdfFileWriterpdfFileReader = PdfFileReader('将进酒.pdf')  # 获取 PdfFileReader 对象
num_pages = pdfFileReader.getNumPages() # 获取页数pdfFileWriter = PdfFileWriter()for i in range(num_pages):page_Obj = pdfFileReader.getPage(i) # 获取第i+1页页面page_Obj.rotateClockwise(90) # 顺时针旋转90°pdfFileWriter.addPage(page_Obj) # 添加读取的第i+1页页面outfile = '实例.pdf'
pdfFileWriter.write(open(outfile, 'wb'))

效果:

8、PDF拼接页面

我们以数据.pdf为例,假设我们现在需要把前4页的页面,拼接到一个页面上去,如何实现呢?

代码实现:

from PyPDF2 import PdfFileReader, PdfFileWriterPdfFileWriter = PdfFileWriter()
pdfFileReader = PdfFileReader(open('数据.pdf', 'rb'))page_1 = pdfFileReader.getPage(0)   # 获取第1页页面
page_1.scaleTo(100, 150)    # 页面缩放至宽100,高150page_2 = pdfFileReader.getPage(1)   # 获取第2页页面
page_2.scaleTo(100, 150)          # 页面缩放至宽100,高150page_3 = pdfFileReader.getPage(2)   # 获取第3页页面
page_3.scaleTo(100, 150)          # 页面缩放至宽100,高150page_4 = pdfFileReader.getPage(3)   # 获取第4页页面
page_4.scaleTo(100, 150)          # 页面缩放至宽100,高150page_1.mergeTranslatedPage(page_2, 100, 0, expand=True)  # 拼接页面
page_1.mergeTranslatedPage(page_3, 0, -150, expand=True)  # 拼接页面
page_1.mergeTranslatedPage(page_4, 100, -150, expand=True)  # 拼接页面PdfFileWriter.addPage(page_1)
PdfFileWriter.write(open('实例.pdf', 'wb'))

效果:

9、PDF加密解密

1、加密

from PyPDF2 import PdfFileReader,PdfFileWriterpdfFileReader = PdfFileReader('将进酒.pdf')  # 获取 PdfFileReader 对象
num_pages = pdfFileReader.getNumPages() # 获取页数pdfFileWriter = PdfFileWriter()for i in range(num_pages): page_Obj = pdfFileReader.getPage(i) # 获取第i+页页面pdfFileWriter.addPage(page_Obj) # 添加读取的第i+1页页面pdfFileWriter.encrypt('123456') # 加密
outfile = '实例.pdf'
pdfFileWriter.write(open(outfile, 'wb'))

效果:

如果这个时候我们操作文件的话,会报错:

2、解密

from PyPDF2 import PdfFileReader
pdfFileReader = PdfFileReader('实例.pdf') # 获取 PdfFileReader 对象is_encrypted = pdfFileReader.isEncrypted # 判断是否加密
print(is_encrypted)  #-->> Trueis_password = pdfFileReader.decrypt('123456')
print(is_password) #-->> 1is_encrypted = pdfFileReader.isEncrypted # 判断是否加密
print(is_encrypted) #-->> Truenum_pages = pdfFileReader.getNumPages() # 获取页数
print(num_pages) #-->> 2

好啦,关于PyPDF2的内容我们就讲到这。

当然,对于PyPDF2的操作更多是在文档本身上,因此如果想对文档内容进行操作的话,得另找它路。这个我们就下次再分享啦。

关注

Python自动化办公:pdf文档操作相关推荐

  1. python自动化办公模块有哪些-Python 自动化办公|Word文档

    [Python 自动化办公]专栏是介绍如何利用python办公,减少工作负荷.篇幅精炼,内容易懂,无论是否有编程基础,都非常适合. 在上次文章中,我们学习了[用python写入excel],这次我们学 ...

  2. Py自动化办公—Word文档替换、Excel表格读取、Pdf文件生成和Email自动邮件发送实战案例...

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 平阳歌舞新承宠,帘外春寒赐锦袍. ...

  3. 用Python提取解析pdf文档中内容

    用Python提取解析pdf文档中内容 文章目录: 参考: 1.https://blog.csdn.net/tmaczt/article/details/82876018 # Tika库 2.http ...

  4. 【python自动化办公03】word操作-文档内容替换

    点击上方"AI搞事情"关注我们 有时候,我们需要将word中特定的内容进行批量替换为新的内容,那么如何应用python win32com 实现word文档内容的批量替换呢?下面就介 ...

  5. 高效办公!Python 批量生成PDF文档

    日常办公中,经常会使用PDF文档,难免需要对PDF文档进行编辑,有时候PDF文档中的大部分内容都是一样的,只是发送对象不同. 这种模板套用的场景下,使用Python进行自动化就尤为方便,用最短的时间办 ...

  6. 【python自动化办公02】word操作-word转pdf

    点击上方"AI搞事情"关注我们 清明 Python调用Win32com实现Office批量转PDF https://www.cnblogs.com/lolipop2019/p/14 ...

  7. python轻松生成pdf文档

    前言 python对办公一族来说,是个提高办公效率的得力利器.熟练使用它,可以轻松完成很多繁杂的事情.(文末送读者福利) 它可以轻松地操作Word.Excel.PDF这种文档. 相比较C#.C++等其 ...

  8. Python自动化办公:word文件操作教程

    在后台回复[阅读书籍] 即可获取python相关电子书~ Hi,我是山月. 之前给大家完整的介绍了用python操作excel的几个库:xlrd.xlwt.openpyxl. 山月也已经整理好了,还没 ...

  9. 使用Python互转pdf文档和word文档

    1 前言 一日,欲将手头上的一份pdf文档转换成word文档.先试着用XX办公软件试了下,微信扫码登录后,在PDF转换界面,选中文档,点击"开始转换",弹出提示对话框:免费的只给转 ...

最新文章

  1. 在 Java Web 项目中,Service 层和 Dao 层真的有必要每个类都加上接口吗
  2. CEGUI Lua 编码
  3. FPGA_进阶篇开篇
  4. php制作留言板的题_PHP实现留言板功能实例代码
  5. XML解析之JAXP案例详解
  6. python异步asy_Python 异步编程之asyncio【转载】
  7. python数据批量写入iq数据库_通过Load table命令将数据文件加载到Sybase IQ数据库里面的Python脚本...
  8. Qt文档阅读笔记-QUdpSocket基本表述及简单实现
  9. 单片机成长之路(51基础篇) - 013 MCS-51单片机控制详解–T2MOD
  10. Bootstrap 模态框插件Modal 的方法
  11. python判断数组中是否有重复元素_python经典面试算法题4.1:如何找出数组中唯一的重复元素...
  12. 电力猫引起的OpenWrt路由器死机掉线的原因
  13. java微信测单删,免费查微信单删软件有哪些(推荐靠谱查单删APP)
  14. C语言有限域的构造,有限域(3)——多项式环的商环构造有限域
  15. Visual Studio 2015 中文社区版下载
  16. 数据结构与算法 实验5 树、二叉树和森林的基本操作
  17. 线段树区间、单点修改查询模板,以及自己对线段树的理解
  18. 转帖:谁动了它们的基因?
  19. R绘图基础指南 | 2.折线图
  20. 全国私营企业调查数据(CPES1993-2014)

热门文章

  1. c语言 自锁按键,具有自锁功能的按键结构的制作方法
  2. LU_ASR01语音模块使用
  3. Linux配置阿里云DNS
  4. 去美元化:曾经被称为加密的地缘政治问题
  5. 图像调整亮度饱和度 c语言,数据增强-亮度-对比度-色彩饱和度-色调-锐度 不改变图像大小...
  6. 你偷看的小簧片,其实全都被监视了…
  7. Qt编写可视化大屏电子看板系统1-布局方案
  8. Python语言-NL-数值运算
  9. 【黑马程序员西安中心】我和传智有个梦!
  10. ModuleNotFoundError: No module named ‘sentence_transformers‘