想将一份 pdf 论文中的所有参考文献都提取出来,去掉不必要的换行,放入一个 text 文件,方便复制。其引用是 ieee 格式的,形如:
想要只在引用序号(如 [3]
)前换行,其它换行都去掉,即一行一条参考文献。
可用 pypdf[1],其主页有示例,加上 re
去除非序号前的换行(检测 [
)。
Code
from pypdf import PdfReader
import re# 检测非 `[` 前的换行
pattern = r'\n(?!\[)'reader = PdfReader("paper.pdf")
n_pages = len(reader.pages)
print(n_pages)with open("ref.txt", "w", encoding="utf-8") as f:for i in range(23, 29): # 自己确定 reference 页码范围page = reader.pages[i]text = page.extract_text()text = re.sub(r'-\n', '', text) # hyphen 后换行:连 hyphen 一齐删text = re.sub(pattern, ' ', text) # 多余换行换成空格f.write(text)# + '\n')
References
- py-pdf/pypdf