python读两个分隔符的文件_如何在Python中读取带分隔符的文件并在末尾附加字符?...

我有一个看起来像这样的文件格式

>1ATGC>2TTTT>3ATGC>$$$>B1ATCG>B2TT-G>3TTCG>B4TT-G>B5TTCG>B6TTCG$$$>C1TTTT>C2ATGC注意:“$$$”将文件分开,例如$$$之前的任何设置为1且$$$设置为2之后和下一个$$$设置3之后的任何内容等。

我必须做到以下几点:

一个。连接“>”后面的序列。因此,我必须加入“ATGC”“TTTT”“ATGC”并存储在(1)中,并且我必须连接“ATCG”“TT-G”“TTCG”“TT-G”“TTCG”“TTCG”并存储如(2)...再次连接并存储在(3)

输出应该是一个如下所示的列表:

("ATGCTTTTATGC","ATCGTT-GTTCGTT-GTTCGTTCG","TTTTATGC")(2)然后,我找到具有最大长度的Set => Set(2)

(3)如果集合i的长度不等于集合(2),则在集合i处添加“Z”,使得集合i的长度现在等于集合(2)的长度,

(4)将所有“ - ”替换为“Z”

输出应该如下所示:

("ATGCTTTTATGCZZZZZZZZZZZZ",

"ATCGTTZGTTCGTTZGTTCGTTCG",

"TTTTATGCZZZZZZZZZZZZZZZZ")这是我尝试过的代码:

in_file = open('c:/test.txt','r')

org = []

seqlist = []

seqstring = ""

for line in in_file:

if line.startswith("$$$"):

if seqstring!= "":

seqlist.append(seqstring)

seqstring = ""

org.append(line.rstrip("\n"))

elif line.startswith(">"):

seqstring += line.rstrip("\n")

seqlist.append(seqstring)

setdraft = seqlist

maxsetlength = max(len(seqlist))

setdraft2 =[]

for i in setdraft:

if len(i) != maxsetlength:

setdraft2 = i.append("Z")

setfinal =[]

for j in setdraft2:

if j in setdraft2 =="-":

setfinal = j.insert ("Z")上述脚本不起作用。它给了我很多错误。

例如。当我打印setdraft时,它会给我输出

['>1ATGC>2TTTT>3ATGC>$$$>B1ATCG>B2TT-G>3TTCG>B4TT-G>B5TTCG>B‌​6TTCG$$$>C1TTTT>C2AT‌​GC']这与输入相同

Traceback (most recent call last):

File "C:/Users/ACER/Desktop/trial.py", line 25, in

maxsetlength = max(len(seqlist))

TypeError: 'int' object is not iterable


版权声明:本文为weixin_39674190原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。