gpt4 book ai didi

python - 在 Python 中将元素添加到 bibtexfile

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:46 24 4
gpt4 key购买 nike

我创建了一个脚本,可以抓取许多 pdf 的摘要和关键字。我还有一组 bibtex 文件,我想在其中放置我提取的文本。我正在寻找的是一种将元素添加到 bibtex 文件的方法。

我写了一个简短的解析器:

#!/usr/bin/python
#-*- coding: utf-8

import os
from pybtex.database.input import bibtex

dir_path = "nime_archive/nime/bibtex/"
num_texts = 0

class Bibfile:
def __init__(self,bibs):
self.bibs = bibs
for a in self.bibs.entries.keys():
num_text += 1
print bibs.entries[a].fields['title']
#Need to implement a way of getting just the nime-identificator
try:
print bibs.entries[a].fields['url']
except:
print "couldn't find URL for text: %s " % a


print "creating new bibfile"



bibfiles = []
parser = bibtex.Parser()


for infile in os.listdir(dir_path):
if infile.endswith(".bib"):
print infile
bibfiles = Bibfile(parser.parse_file(dir_path+infile))

我的问题是是否可以使用 Pybtex 将元素添加到现有的 bibtex 文件中(或创建一个副本),以便我可以将我的提取与现有的内容合并。如果这在 Pybtex 中是不可能的,我可以使用其他什么 bibtex 解析器?

最佳答案

我从来没有用过pybtex,但快速浏览一下,你可以添加条目。因为 self.bibs.entries 看起来是一个 dict,你可以想出一个唯一的键,并向它添加更多的条目。示例:

key = "some_unique_string"
new_entry = Entry('article',
fields={
'language': u'english',
'title': u'Predicting the Diffusion Coefficient in Supercritical Fluids',
'journal': u'Ind. Eng. Chem. Res.',
'volume': u'36',
'year': u'1997',
'pages': u'888-895',
},
persons={'author': [Person(u'Liu, Hongquin'), Person(u'Ruckenstein, Eli')]},
)
self.bibs.entries[key] = new_entry

(警告:未经测试)

如果您想知道我从哪里得到这个示例表单:请查看 pybtex 源代码的 tests/ 子目录。我主要从tests/database_test/data.py得到上面的代码示例。如果缺少实际文档,测试可能是一个很好的文档来源。

关于python - 在 Python 中将元素添加到 bibtexfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13819019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com