게시 된 기사를 저장하고 읽는 데 문제가 있습니다. 이 페이지 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