Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过BioPython自动将PMC全文保存到磁盘?_Python_Bioinformatics_Biopython_Pubmed - Fatal编程技术网

如何通过BioPython自动将PMC全文保存到磁盘?

如何通过BioPython自动将PMC全文保存到磁盘?,python,bioinformatics,biopython,pubmed,Python,Bioinformatics,Biopython,Pubmed,有没有办法下载并保存Entrez模块返回到本地磁盘的XML文件?我目前正在做的是: fetch = Entrez.efetch(db='pmc', resetmode='xml', id=ids, rettype='full') article = fetch.read() 然后通过Python的write函数将article作为str对象保存为xml文件 BioPy

有没有办法下载并保存Entrez模块返回到本地磁盘的XML文件?我目前正在做的是:

fetch = Entrez.efetch(db='pmc',
                     resetmode='xml',
                     id=ids,
                     rettype='full')
article =  fetch.read()
然后通过Python的write函数将
article
作为
str
对象保存为xml文件


BioPython是否提供了一种将文件自动下载到磁盘上的方法?

我认为BioPython没有提供这样做的方法,但不需要这样做,因为您无需先保存到字符串即可完成此操作:

fetch = Entrez.efetch(db='pmc',
                 resetmode='xml',
                 id=ids,
                 rettype='full')

with open('fileNameToSave.xml', 'w') as f:
    f.write(fetch.read())
Chris_Rands在评论中指出,另一种方法是通过URL直接获取文件:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=15718680

为什么不直接查询efetch?就像我想下载大量PMC论文一样,NCBI有一些关于处理批量API请求的规则,我没有时间实现这些规则。BioPython已经实现了它们,所以我想知道BioPython是否有下载功能。我认为“resetmode”应该是“retmode”。谢谢,这正是我所做的。在以后的分析中,我需要str对象,所以我先将它保存到字符串中。