我知道关于多个分隔符有多个问题的答案,但我的问题涉及需要由多个分隔符分隔但不是全部分隔符。我有一个包含以下文件:在Python中使用多个但不是全部分隔符分割文件
((((((Anopheles_coluzzii:0.002798,Anopheles_arabiensis:0.005701):0.001405,(Anopheles_gambiae:0.002824,Anopheles_quadriannulatus:0.004249):0.002085):0,Anopheles_melas:0.008552):0.003211,Anopheles_merus:0.011152):0.068265,Anopheles_christyi:0.086784):0.023746,Anopheles_epiroticus:0.082921):1.101881;
这是newick格式,所有的信息都在一个长行。我想要做的是隔离所有跟随另一个数字的数字。例如,我想隔离的第一个数字是0.001405。我想把它放在一个包含数字后面的所有其他数字(不是名称等)的列表中。
我试着用下面的代码:
with open("file.nh", "r") as f:
for line in f:
data = line
z = re.findall(r"[\w']+", data)
这里的问题是,这种分割使用列表“”以及其他分隔符,这是一个问题,因为我需要的所有数字都有小数点。
我考虑过与此并将列表中的数字转换为整数,然后删除所有非int值和0值。但是,某些文件包含0作为需要保留的值。
那么有没有办法选择使用哪些分隔符,以及在需要多个分隔符时要避免哪些分隔符?
Google“python newick”。问问你自己“有其他人已经做过这件事了吗?”总是很重要的,通常在生活中,但在编程方面尤其如此。 –
嗨,如果它是BioPython你指的是我确实看过整个文档,但我不能推导出如何从它获得我需要的东西,这是提取我的树的内部分支长度。我并不是说它不能在BioPython中完成,因为我确定必须有一种方法,但是没有成功,我决定用python手动解析文件。 – spiral01
隔离所有数字后跟另一个数字......在这种情况下该做什么:'Anopheles_quadriannulatus:0.004249):0.002085):0':你想要0.002085和0还是只是第一个或最后一个? –