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

2024-09-28 01:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从前端得到的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库的哪个函数用于解析变量中的文件,到目前为止还没有找到任何解决问题的方法

希望有人能帮忙

谢谢


Tags: 文件from终端parser示例readparse计算机
1条回答
网友
1楼 · 发布于 2024-09-28 01:25:42

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

parse_stringparse_bytes这两种方法都能奏效

就这样

from pybtex.database.input import bibtex

parser = bibtex.Parser()
bibtexFile= parser.parse_bytes(fileFromFrontend.read())   
print (bibtexFile.entries)

我没有安装pybtex,所以我自己无法尝试。但是试试这些方法。Parse_字节和Parse_字符串需要bib格式作为第二个参数。在例子中是bibtex,所以我在这里尝试了它

相关问题 更多 >

    热门问题