次の標準コードを使用して、pubmed から特定のキーワード セットの ID を取得しようとしています。
import os
from Bio import Entrez
from Bio import Medline
#Defining keyword file
keywords_file = "D:\keywords.txt"
# Splitting keyword file into a list
keyword_list = []
keyword_list = open(keywords_file).read().split(',')
#print keyword_list
# Creating folders by keywords and creating a text file of the same keyword in each folder
for item in keyword_list:
create_file = item +'.txt.'
path = r"D:\Thesis"+'\\'+item
#print path
if not os.path.exists(path):
os.makedirs(path)
#print os.getcwd()
os.chdir(path)
f = open(item+'.txt','a')
f.close()
# Using biopython to fetch ids of the keyword searches
limit = 10
def fetch_ids(keyword,limit):
for item in keyword:
print item
print "Fetching search for "+item+"\n"
#os.environ['http_proxy'] = '127.0.0.1:13828'
Entrez.email = 'A.N.Other@example.com'
search = Entrez.esearch(db='pubmed',retmax=limit,term = '"'+item+'"')
print term
result = Entrez.read(search)
ids = result['IdList']
#print len(ids)
return ids
print fetch_ids(keyword_list,limit)
id_res = fetch_ids(keyword_list,limit)
print id_res
def write_ids_in_file(id_res):
with open(item+'.txt','w') as temp_file:
temp_file.write('\n'.join(ids))
temp_file.close()
write_ids_in_file(id_res)
一言で言えば、私がやろうとしているのは、各キーワードと同じ名前のフォルダーを作成し、フォルダー内にテキスト ファイルを作成し、コードを介して pubmed から ID を取得し、ID をテキスト ファイルに保存することです。私のプログラムは、最初にテストしたときは問題なく動作しましたが、数回試行した後、ターゲット マシンが積極的に接続エラーを拒否するようになりました。役に立つかもしれないいくつかの詳細、
ヘッダー情報
- ホスト = 'eutils.ncbi.nlm.nih.gov'
- 接続 = '閉じる'
- ユーザーエージェント = 'Python-urllib/2.7'
URL
ホスト= '127.0.0.1:13828'
この質問は、ポートがリッスンしていないという応答で何度も尋ねられていることを知っていますが、知りたいのは、これが私の問題でもある場合、この特定のポートでアプリケーションを動作させるにはどうすればよいかということです。すでにファイアウォールの設定に移動し、ポート 13828 を開いていますが、これ以上何をすればよいかわかりません。これが当てはまらない場合、解決策として考えられる回避策は何ですか?
ありがとう!