我有一个335个基因访问号的csv列表,我想将它们全部放入特定的URL:
https://www.ncbi.nlm.nih.gov/nuccore/DQ147858.1?report=fasta
每个URL的8字母基因访问号(上面的DQ147858)与相应的csv列表不同。
然后我还需要知道如何使用请求访问所有生成的URL。
非常感谢您的帮助。
答案 0 :(得分:1)
您可以使用以下方法来概括网址的创建:
def build_url(gene):
return 'https://www.ncbi.nlm.nih.gov/nuccore/' + gene + '.1?report=fasta'
然后,要为每个gene
进行构建,您可以遍历初始列表并为每个基因应用函数build_url
。
# Generic extraction of list genes from csv
genes = extract_list(csv)
# Using list comprehension
genes_urls = [build_url(gene) for gene in genes]
# Using regular for
genes_urls = []
for gene in genes:
genes_urls.append(build_url(gene))
按照此answer进行请求,您只需执行以下操作:
import requests
# Using list comprehension
res = [requests.get(url) for url in genes_urls]
# Using regular for
res = []
for url in genes_urls:
res.append(requests.get(url))
此外,您可以use multithreading加快请求的速度。
答案 1 :(得分:0)
csv = open('PATH_TO_CSV', 'r')
for gene_number in csv.readlines().split(','):
URL = 'https://www.ncbi.nlm.nih.gov/nuccore/' + gene_number + '.1?report=fasta'
// request parsing here
答案 2 :(得分:0)
要读取.csv,请使用以下代码:
result = []
for line in open("file.csv"):
result.append(line.split(','))
这将为您提供逗号之间每个元素的列表。我不知道您需要哪个se元素,但是请看一下result[0]
来了解您需要哪个索引。
有了您需要的索引,
fmtstr = "https://www.ncbi.nlm.nih.gov/nuccore/{}?report=fasta"
urls = []
for lst in result:
urls.append(fmtstr.format( lst[desired_index] ))
然后,您可以遍历URL列表并根据需要使用请求库。
这不是最紧凑的处理方式,但是它是功能性的,并且将步骤分开以简化查看。