python实现bib文件中参考文献的题目每个单词首字母大写

文章目录

前言

由于毕业论文格式要求英文参考文献的题目的每个单词(除了介词)的首字母都要大写,如果一条条地自己修改费时费力,这里就想着简单地用python操作字符串的方式实现。

在这里插入图片描述

实现思路

  • 观察bib参考文献格式,可以发现题目标识的关键字为title

    @article{ames2016control,
    	title={Control barrier function based quadratic programs for safety critical systems},
    	author={Ames, Aaron D and Xu, Xiangru and Grizzle, Jessy W and Tabuada, Paulo},
    	journal={IEEE Transactions on Automatic Control},
    	volume={62},
    	number={8},
    	pages={3861--3876},
    	year={2016},
    	publisher={IEEE}
    }
    
  • 创建一个介词列表,将不需要首字母大写的单词添加进去,然后依次读取文件的每一行,判断是否是title一行,如果是,检查该行字符串单词首字母是否已全部大写,如果没有则使用title()函数进行首字母大写的修改。

  • 完整python实现代码如下:

    import numpy as np 
    import string
    
    # 去除相关介词的大写
    e_list = ['of', 'the', 'for', 'with', 'and', 'in', 'to', 'on', 'at']
    
    
    def new_str(x):
        """将字符串中的单词(除去预先给定的单词列表)首字母大写
    
        Args:
            x (_type_): 预处理字符串
    
        Returns:
            _type_: 除给定单词之外单词首字母大写后的字符串
        """
        return ' '.join([a.title() if (not a in e_list and not a.isupper()) else a for a in x.split()])
    
    
    if __name__=='__main__':
        f = open('bib.bib', 'r', encoding='UTF-8')  # 读取想要修改的bib参考文献
        fw = open('bib_update.bib', 'w')  # 写入新的bib文件中
        lines = f.readlines()
        for line in lines:
            # if(line[2:7]=="title"):
            if("title" in line[0:10] and "booktitle" not in line[0:10]):
                new_line = line.replace('{', '{{')
                new_line = new_line.replace('}', '}}')
                # print(new_line[0:9])
                # final_line = new_line[0:9] + string.capwords(new_line[9:])+'\n'
                # final_line = new_line[0:9] + new_line[9:].title()
                final_line = new_line[0:9] + new_str(new_line[9:])+'\n'
                fw.write(final_line)
                print(final_line)
            else:
                fw.write(line)
        fw.close()
    

修改完成后的bib参考文献格式大致如下:

@article{ames2016control,
	title={{Control Barrier Function Based Quadratic Programs for Safety Critical Systems}},
	author={Ames, Aaron D and Xu, Xiangru and Grizzle, Jessy W and Tabuada, Paulo},
	journal={IEEE Transactions on Automatic Control},
	volume={62},
	number={8},
	pages={3861--3876},
	year={2016},
	publisher={IEEE}
}

代码仓库见GitHub

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 LaTeX 文档引用 bib 文件参考文献,需要以下几个步骤: 1. 准备 bib 文件bib 文件,每一条参考文献都是一个条目(entry),包含了作者、标题、年份、出版信息等信息。例如,以下是一个 bib 文件的一个条目: ``` @article{greenwade93, author = "George D. Greenwade", title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})", year = "1993", journal = "TUGBoat", volume = "14", number = "3", pages = "342--351" } ``` 2. 在 LaTeX 文档导入 bib 文件 在 LaTeX 文档,通过以下命令导入 bib 文件: ``` \bibliography{bib文件名} ``` 例如,要导入名为 `references.bib` 的 bib 文件,可以使用以下命令: ``` \bibliography{references} ``` 3. 在文引用参考文献 在文引用参考文献时,需要使用以下命令: ``` \cite{参考文献标识符} ``` 例如,在文引用上面的参考文献条目,可以使用以下命令: ``` \cite{greenwade93} ``` 4. 编译 LaTeX 文档 最后,需要编译 LaTeX 文档两次。第一次编译生成 `.aux` 文件,第二次编译在文插入参考文献。可以使用以下命令编译 LaTeX 文档: ``` pdflatex 文档名 bibtex 文档名 pdflatex 文档名 pdflatex 文档名 ``` 其,`文档名` 是要编译的 LaTeX 文档的文件名(不包括扩展名)。 5. 生成参考文献列表 在文档末尾使用以下命令生成参考文献列表: ``` \bibliographystyle{参考文献样式} \bibliography{bib文件名} ``` 其,`参考文献样式` 是参考文献的显示样式,例如 `plain`、`unsrt`、`alpha` 等。可以根据需要选择合适的样式。例如,要使用 `plain` 样式生成参考文献列表,可以使用以下命令: ``` \bibliographystyle{plain} \bibliography{references} ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHH3213

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值