论文参考文献作者排序

做科研时部分论文或者专著引用的参考文献需要将中文文献和英文文献作者分开按照字母顺序排序,一个一个手动排的话速度很慢而且效率很低,这里给到一种方法,通过调用python的pinyin库来达到自动排序的效果

首先安装pinyin库

pip install pinyin

针对中文文献和英文文献作者分别进行排序

首先是中文文献作者

# 定义一个函数用于按中文作者拼音排序
def sort_chinese_references(references):
    return sorted(references, key=lambda x: extract_chinese_pinyin(re.findall(r'[\u4e00-\u9fff]+', x)[0]))

chinese_references = [ref for ref in references if re.search("[\u4e00-\u9fff]", ref)]

sorted_chinese_references = sort_chinese_references(chinese_references)

然后是英文文献作者

# 定义一个函数用于按英文作者排序
def sort_english_references(references):
    return sorted(references, key=lambda x: x.split(".")[0])

english_references = [ref for ref in references if not re.search("[\u4e00-\u9fff]", ref)]

sorted_english_references = sort_english_references(english_references)

最后再将二者合并起来保存即可

sorted_references = sorted_chinese_references + sorted_english_references

完整的代码如下

import re
import pinyin

# 定义一个函数用于提取中文作者名字的拼音
def extract_chinese_pinyin(author_name):
    pinyin_list = pinyin.get(author_name)
    return ''.join(pinyin_list)

# 定义一个函数用于按中文作者拼音排序
def sort_chinese_references(references):
    return sorted(references, key=lambda x: extract_chinese_pinyin(re.findall(r'[\u4e00-\u9fff]+', x)[0]))

# 定义一个函数用于按英文作者排序
def sort_english_references(references):
    return sorted(references, key=lambda x: x.split(".")[0])

# 读取文献信息
with open("references.txt", "r", encoding="utf-8") as file:
    references = file.readlines()

# 分别对中文和英文文献进行排序
chinese_references = [ref for ref in references if re.search("[\u4e00-\u9fff]", ref)]
english_references = [ref for ref in references if not re.search("[\u4e00-\u9fff]", ref)]

sorted_chinese_references = sort_chinese_references(chinese_references)
sorted_english_references = sort_english_references(english_references)

# 合并排序后的结果
sorted_references = sorted_chinese_references + sorted_english_references

# 将结果保存到文本文件
with open("sorted_references.txt", "w", encoding="utf-8") as file:
    for reference in sorted_references:
        file.write(reference)

print("排序结果已保存到 sorted_references.txt 文件中。")

效果如下,这里只展示部分

  • 20
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值