【问题标题】:Converting byte type file to workable format in python在python中将字节类型文件转换为可用格式
【发布时间】:2020-04-22 09:09:20
【问题描述】:

我必须将下面链接(html 页面)中的表格读入 dict() 中,然后进行处理。但是,使用我给出的以下代码,该表仍然看起来很笨拙,我不明白从哪里开始工作以使其成为相应氨基酸的密码子序列(例如 AGU)字典。有什么办法让它看起来更好吗?可能类似于 DataFrame 或任何其他建议?请帮忙。谢谢。

link = "http://www.kazusa.or.jp/codon/cgi-bin/showcodon.cgi?species=9606&aa=1&style=N"
f = urllib.request.urlopen(link)
myfile = f.read()
s = myfile.decode()
s.strip(" ")

【问题讨论】:

  • 收到的原始数据和期望的输出是什么?举一些例子,向我们展示你迄今为止为处理数据所做的尝试!
  • 原始数据只是那个html链接。我必须用它制作字典。上面我编写的代码是为了在 jupyter notebook 中打开数据并最终将其转换为“str”类。它是一个很大的段落。我只是想知道是否有更好的方法来打开和管理它。
  • 在 Stack Overflow 上,与问题相关的所有内容都必须包含在问题本身中。没有链接,也没有截图。
  • 很抱歉,我的任务是只处理这个 html 文件,因此我提供了那个链接。

标签: python class byte sequence analysis


【解决方案1】:

如果您查看过http://www.kazusa.or.jp/codon/cgi-bin/showcodon.cgi?species=9606&aa=1&style=N 页面,您会注意到它不仅包含您想要的密码子序列,还包含大量 围绕它的HTML。要仅提取密码子,最好的方法可能是使用 BeautifulSoup:

from bs4 import BeautifulSoup
link = "http://www.kazusa.or.jp/codon/cgi-bin/showcodon.cgi?species=9606&aa=1&style=N"
f = urllib.request.urlopen(link)
myfile = f.read()
s = myfile.decode()
codons = BeautifulSoup(s).find('pre').text

现在你可能应该进一步处理这个字符串以获得你想要的形式 - 字典、列表、数据框等等。假设您只想要一个字典,因为您提到了字典:

import re
codons_dict = { t[0]: t[1] for t in sorted(re.findall(r'(\w{3})\s+\w\s+(\S+)\s+\S+\s+[(]\d+[)]', codons)) }

【讨论】:

  • 你太棒了。我昨天花了一整天才弄清楚。没有提到“BeautifulSoup”。感谢您的指导。
  • 嗨..如果我想打印 html 页面第一列和第三列中给出的密码子和概率怎么办?我还需要所有 64 个密码子(三联体),即使是那些形成氨基酸的密码子都用 (*) 表示。我给出的代码为 -"{ t[0]: t[2] for t in re.findall(r'(\w{3})\s+(\w)*(\W+)', codons) } " 但只打印密码子,而不是使用此代码的概率。请帮忙。
  • 将\w 更改为\S 以匹配任何非空格字符(不仅仅是字母),包括*。
  • 不工作。我想要这样的字典.."GCG': '0.11', 'GAG': '0.58', 'GGG': '0.25', 'UAA': '0.30'" 其中 "UAA" 有 * 但仍然是与其他人一起被收录在字典中。我的代码给出了这样的内容-“GCG':'','GAG':'','GGG':'','UAA':“*”。
  • 看看修改后的答案(只是最后一行)。
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 2019-06-24
  • 2021-02-27
  • 2017-02-24
  • 1970-01-01
  • 2019-10-28
  • 2014-12-15
  • 1970-01-01
相关资源
最近更新 更多