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

Python 如何将biblib解析器与存储在pyhon变量中的bibtex文件一起使用?,python,bibtex,fileparsing,Python,Bibtex,Fileparsing,我有一个从前端得到的bibtex文件,我正试图用biblib(一个解析bibtex文件的python库)解析这个文件。因为我从前端获取文件,它没有存储在我计算机上的文件中。该文件通过一个变量从前端传递到python,然后存储在python变量fileFromFrontend中。因此,我可以使用以下示例: bibtexFile=fileFromFrontend.read() 读取文件 现在,我尝试执行以下操作,以便在python终端中打印解析后的文件: from pybtex.database.i

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

希望有人能帮忙


谢谢

根据文档()有一些方法

parse_string
parse_bytes
可以工作

就这样

from pybtex.database.input import bibtex

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

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

根据文档()有一些方法

parse_string
parse_bytes
可以工作

就这样

from pybtex.database.input import bibtex

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

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

谢谢你的回答。它进行了一些修改。我已经用工作代码编辑了你的答案。非常感谢Hanks的编辑,我批准了。如果此解决方案有效,您可以批准答案。然后其他人可以在列表视图中看到它有一个有效的解决方案。谢谢您的回答。它进行了一些修改。我已经用工作代码编辑了你的答案。非常感谢Hanks的编辑,我批准了。如果此解决方案有效,您可以批准答案。然后其他人可以在列表视图中看到它有一个有效的解决方案。