我正在尝试根据其ID下载文件。如果我将IDS存储在文本文件中,我该如何下载文件。这是我到目前为止所做的事情
import urllib2
#code to read a file comes here
uniprot_url = "http://www.uniprot.org/uniprot/" # constant Uniprot Namespace
def get_fasta(id):
url_with_id = "%s%s%s" %(uniprot_url, id, ".fasta")
file_from_uniprot = urllib2.urlopen(url_with_id)
data = file_from_uniprot.read()
get_only_sequence = data.replace('\n', '').split('SV=')[1]
length_of_sequence = len(get_only_sequence[1:len(get_only_sequence)])
file_output_name = "%s%s%s%s" %(id,"_", length_of_sequence, ".fasta")
with open(file_output_name, "wb") as fasta_file:
fasta_file.write(data)
print "completed"
def main():
# or read from a text file
input_file = open("positive_copy.txt").readlines()
get_fasta(input_file)
if __name__ == '__main__':
main()
答案 0 :(得分:3)
.readlines()
返回文件中的行列表。
根据一份官方文档,你也可以修改它
要从文件中读取行,可以循环遍历文件对象。这样可以节省内存,速度很快,并且可以实现简单的代码。
所以我猜你的代码可能会以这种方式重写
with open("positive_copy.txt") as f:
for id in f:
get_fasta(id.strip())
您可以在PEP-343
页面中详细了解with
关键字。