2017-04-11 52 views
1

有没有办法下载并保存Entrez模块返回到本地磁盘的XML文件?什么我目前做的是:如何通过BioPython自动将PMC全文保存到磁盘?

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

然后保存article这是一个str对象通过Python的写入功能的XML文件。

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

+0

为什么不直接查询efetch?像https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=15718680,157427902,119703751 –

+0

我想下载大量的PMC论文,NCBI有一些关于处理的规则批量API请求,我没有时间实施。 BioPython已经实现了它们,所以我想知道BioPython是否具有下载功能。 – HMK

+0

但无论如何感谢 – HMK

回答

1

我不认为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 
+0

谢谢,这正是我所做的。我在后面的分析中需要str对象,所以我先将它保存到字符串中。 – HMK