パブされた記事を保存して読むのに問題があります。私はこのページでhereを見ましたが、特殊なファイルタイプがいくつかありますが、そのうちのどれも私のために働いていませんでした。データを取得するためにキーを使用し続けることができるように、それらを保存します。私はテキストファイルとして保存すれば可能かどうかわかりません。私のコードは、このいずれかになります。pubmed記事をダウンロードして読み込む方法は?
import sys
from Bio import Entrez
import re
import os
from Bio import Medline
from Bio import SeqIO
'''Class Crawler is responsable to browse the biological databases
from DownloadArticles import DownloadArticles
c = DownloadArticles()
c.articles_dataset_list
'''
class DownloadArticles():
def __init__(self):
Entrez.email='[email protected]'
self.dataC = self.saveArticlesFilesInXMLMode('pubmed', '26837606')
'''Metodo 4 ler dado em forma de texto.'''
def saveArticlesFilesInXMLMode(self,dbs, ids):
net_handle = Entrez.efetch(db=dbs, id=ids, rettype="medline", retmode="txt")
directory = "/dataset/Pubmed/DatasetArticles/"+ ids + ".fasta"
# if not os.path.exists(directory):
# os.makedirs(directory)
# filename = directory + '/'
# if not os.path.exists(filename):
out_handle = open(directory, "w+")
out_handle.write(net_handle.read())
out_handle.close()
net_handle.close()
print("Saved")
print("Parsing...")
record = SeqIO.read(directory, "fasta")
print(record)
return(record.read())
私はこのエラーを取得しています:ValueError: No records found in handle
ピーズの誰かが私を助けることができますか?
今私のコードは次のようであるあなたがやったように、私は.fasta
に保存する機能をやろうとしています。そして、上記の答えのようなファイル.fasta
を読んでください。
import sys
from Bio import Entrez
import re
import os
from Bio import Medline
from Bio import SeqIO
def save_Articles_Files(dbName, idNum, rettypeName):
net_handle = Entrez.efetch(db=dbName, id=idNum, rettype=rettypeName, retmode="txt")
filename = path + idNum + ".fasta"
out_handle = open(filename, "w")
out_handle.write(net_handle.read())
out_handle.close()
net_handle.close()
print("Saved")
enter code here
Entrez.email='[email protected]'
dbName = 'pubmed'
idNum = '26837606'
rettypeName = "medline"
path ="/run/media/Dropbox/codigos/Codes/"+dbName
save_Articles_Files(dbName, idNum, rettypeName)
しかし、私の機能は機能していません。何か助けてください!
どうすればこの出力を得ることができますか? – user2535338
あなたはすでにこの出力を得るためのすべてのコードを持っています。私が書いたように、それは 'net_handle.read()'の出力です。 – BioGeek
net_handle.read()を使ってこの出力を得るには – user2535338