从在线页面存储数据

时间:2016-11-02 11:22:08

标签: python-3.x

AC是入藏号码列表。 AC = [' P02649 \ n',' Q59297 \',...] 我想打开与入藏号对应的URL,并将每个url的所有数据注册到另一个列表(pdblines)中,每行应该是列表的元素。

但我的程序仅适用于最后一个入藏号...

def recup_file(AC):
    for code in AC :
        code = code.strip()
        file = "http://www.uniprot.org/uniprot/%s.txt" %code
        pdblines = str(urllib.request.urlopen(file).read()).split('\\n')
    return pdblines

如何为每个号码创建数据列表?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在您循环的每一步中,第pdblines = str(urllib.request.urlopen(file).read()).split('\\n')行将pdblines的当前值替换为新值。

您想要的可能是包含所有值的列表。所以你必须:

  1. 在循环之前声明一个空列表
  2. 在每个循环步骤中将新值添加到列表中
  3. 试试这个:

    def recup_file(AC):
        pdblines = []
        for code in AC :
            code = code.strip()
            file = "http://www.uniprot.org/uniprot/%s.txt" %code
            pdblines.append(str(urllib.request.urlopen(file).read()).split('\\n'))
        return pdblines