用来辅助整理参考文献格式的Python脚本。 如果你的参考文献用的格式和要求的不一样,或者用了奇奇怪怪的编号,可以参考本代码样例。
本人第一次写行研报告,用了非常个性化且不够规范的参考文献格式,形如:"""正文:世界PC市场稳中向好(jan2d)
参考文献:jan25d - Canalys. Global PC shipments grew 3.9% to 256 million in 2024. https://www.canalys.com/newsroom/global-pc-shipments-q4-2024
"""
其中,jan是月份,25是年份,d是同年同月文献的顺序编号。这种参考文献格式在正文中被放在中文括号"()"中标注引用,可以想象是十分惨不忍睹的画面。
因此,我尝试让Deepseek-R1(豆包)帮我撰写了一系列Python代码,把参考文献转为正确的格式,并在删除多余的参考文献后重新按照引用顺序排序和编号。在运行这些代码之后,文章变成了如下形式:
"""
正文:
...
世界PC市场稳中向好[1]
...
参考文献:
...
[1] Canalys. Global PC shipments grew 3.9% to 256 million in 2024. https://www.canalys.com/newsroom/global-pc-shipments-q4-2024
...
"""
看起来效果还不错,因此有了本仓库。
ReferenceConvert.py 是格式转换脚本,它利用 re 库提供的正则表达式功能进行格式识别和转换,再利用 OrderedDict 库提供的排序功能将原参考文献按原有顺序重新编号,生成连续新标号并建立新旧映射。还可对正文中引用的旧标号自动替换为新标号,支持多标号批量处理,最后输出新旧标号映射表、新参考文献列表和修正后的文本。
ReferenceSort.py 继续使用 re 和 OrderedDict,它能对上一步处理过的论文和参考文献文本进行分类和排序。它先将正文中的被引用文献的数字标号转为字母标号,再按字母顺序重新编号。会分离已引用和未引用文献,为未引用的分配后续标号,最终输出修正后的正文和按新顺序排列的参考文献列表。
经过上述处理,正文文本中有概率出现异常的空格情况,因此有了 BlankRemove.py 脚本。该脚本用于规范文本中的空格,能智能处理中英文、数字间的空格,保留段落开头四个空格。它会去除中文字符间异常空格,以及引用符号与其他字符间的多余空格,还能合并连续引用符号,让文本格式更规范。