如何用bibtexparser更新字段?

时间:2016-12-22 00:51:39

标签: python python-2.7 parsing bibtex

我想读取一个.bib文件(我会经常下载)然后读取其中的所有条目以及缺少条目中预定义字段集的位置,添加具有一些静态信息的特定字段然后更新文件。

例如,如果我有一个像这样的文件input.bib:

@article{ ISI:000361215300002,
Abstract = {{some abstract}},
Year = {{2016}},
Volume = {{47}}
}

然后我会执行这样的事情:

python code.py < input.bib > input.bib

在code.py中,我想做类似的事情:

def populateKey(data):
for entry in data.entries:
    if 'key' not in entry:
        entry['key'] = KEY_VALUE

bib_str = ""
for line in sys.stdin:
    bib_str += line

bib_data = loads(bib_str)
populateKey(bib_data)
bibtex_str = bibtexparser.dumps(bib_data)
print bibtex_str

执行上面的代码后,我得到的输出看起来像是:

@article{ ISI:000361215300002,
abstract = {some abstract},
key = value
volume = {47},
year = {2016},
}

bibtex模块正在破坏我的格式,因为它使所有内容都小写并删除多余的括号并使字段混乱。有没有办法不覆盖文件,只是在特定字段不存在的地方添加特定字段?

0 个答案:

没有答案