我想读取一个.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模块正在破坏我的格式,因为它使所有内容都小写并删除多余的括号并使字段混乱。有没有办法不覆盖文件,只是在特定字段不存在的地方添加特定字段?