为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 biblib 解析器与存储在 pyhon 变量中的 bibtex 文件一起使用?

如何将 biblib 解析器与存储在 pyhon 变量中的 bibtex 文件一起使用?

翻翻过去那场雪 2022-10-25 15:29:25
我有一个从前端获得的 bibtex 文件,我正在尝试用 biblib (一个解析 bibtex 文件的 python 库)解析这个文件。因为我从前端获取文件,所以它没有存储在我电脑上的文件中。该文件通过一个变量从前端传递到 python,然后存储在 python 变量 fileFromFrontend 中。所以我可以使用例如:bibtexFile = fileFromFrontend.read() 读取文件。现在我正在尝试执行以下操作以在 python 终端中打印解析的文件:from pybtex.database.input import bibtexparser = bibtex.Parser()bibtexFile= parser.parse_file(fileFromFrontend)print (bibtexFile.entries)但后来我得到这个错误:-->bibtexFile = parser.parse_file(filesFromFrontend)-->with open_file(filename, encoding=self.encoding) as f:-->AttributeError: __enter__这可能是因为解析器试图打开文件但他不必打开这个文件,他只需要读取这个文件。我不知道使用 biblib 库的什么函数来解析来自变量的文件,并且到目前为止还没有找到任何东西来解决我的问题。希望有人可以提供帮助
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

根据文档(https://docs.pybtex.org/api/parsing.html)有方法

parse_stringparse_bytes哪个可以工作。

像这样

我有一个从前端获得的 bibtex 文件,我正在尝试用 biblib (一个解析 bibtex 文件的 python 库)解析这个文件。因为我从前端获取文件,所以它没有存储在我电脑上的文件中。该文件通过一个变量从前端传递到 python,然后存储在 python 变量 fileFromFrontend 中。所以我可以使用例如:


bibtexFile = fileFromFrontend.read() 读取文件。


现在我正在尝试执行以下操作以在 python 终端中打印解析的文件:


from pybtex.database.input import bibtex


parser = bibtex.Parser()

bibtexFile= parser.parse_file(fileFromFrontend)

print (bibtexFile.entries)

但后来我得到这个错误:


-->bibtexFile = parser.parse_file(filesFromFrontend)

-->with open_file(filename, encoding=self.encoding) as f:

-->AttributeError: __enter__

这可能是因为解析器试图打开文件但他不必打开这个文件,他只需要读取这个文件。我不知道使用 biblib 库的什么函数来解析来自变量的文件,并且到目前为止还没有找到任何东西来解决我的问题。


希望有人可以提供帮助


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号