だから私は以下のこのコードに取り組んでいます。私のReff.txtに複数の行がある場合、問題なく準拠しました。しかし、Reff.txt ファイルが 1 行の場合は機能しません。何故ですか?また、コードの「試行」部分が実行されず、常に「例外」部分のみが実行されるのはなぜだろうか。
- だから私はIDのリストを持つ参照ファイルを持っています(1行に1つのID)
- 参考ファイル(Reff.txt)を参考に、ウェブサイトからデータベースを検索したり、ネットワーク内のサーバーからデータベースを検索したりしています。
- 私が得るべき結果は、出力ファイルとそのIDの情報を含むファイルがあるはずです。各参照 ID に対して
ただし、このコードは「try:」部分では何もしません。
import sys
import urllib2
from lxml import etree
import os
getReference = open('Reff.txt','r') #open the file that contains list of reference ids
global tID
for tID in getReference:
tID = tID.strip()
try:
with open(''+tID.strip()+'.txt') as f: pass
fileInput = open(''+tID+'.txt','r')
readAA = fileInput.read()
store_value = (readAA.partition('\n'))
aaSequence = store_value[2].replace('\n', '') #concatenate lines
makeList = list(aaSequence)#print makeList
inRange = ''
fileAddress = '/database/int/data/'+tID+'.txt'
filename = open(fileAddress,'r')#name of the working file
print fileAddress
with open(fileAddress,'rb') as f:
root = etree.parse(f)
for lcn in root.xpath("/protein/match[@dbname='PFAM']/lcn"):#find dbname =PFAM
start = int(lcn.get("start"))#if it is PFAM then look for start value
end = int(lcn.get("end"))#if it is PFAM then also look for end value
while start <= end:
inRange = makeList[start]
start += 1
print outputFile.write(inRange)
outputFile.close()
break
break
break
except IOError as e:
newURL ='http://www.uniprot.org/uniprot/'+tID+'.fasta'
print newURL
response = urllib2.urlopen(''+newURL) #go to the website and grab the information
creatNew = open(''+uniprotID+'.txt','w')
html = response.read() #read file
creatNew.write(html)
creatNew.close()