要求:现有两个文本文件:all.txt和part.txtall.txt内容如下:>GENENUMBER000001AAAAGGGGTTTTCCCCATATATATAGCGCGCGCCCCCGGGGATTTGCGGACCTTTGGGGCTCTTT>GENENUMBER000002GGGGCGCGGGGGG...
要求:
现有两个文本文件:all.txt 和 part.txt
all.txt 内容如下:
>GENENUMBER000001
AAAAGGGGTTTTCCCCATATATATAGCGCGCGCCCCCGGGGATTTGCGGACCTTTGGGGCTCTTT
>GENENUMBER000002
GGGGCGCGGGGGGGGGGGGGGAGGGGTTTTTTTTTTTTTTTTTAGGAAGGAAGGAGAGTTTCCCCCCTTC
>GENENUMBER000003
TTGGGGTTGGGGGAAATTGCGCTTTAGGGGTGTGTAAAGTGTGAGTGTGTAACCCCGGGGCCCCGCGCGGGGGCGTTATCGATGCCCGTATATTATGCGGCATGTTTTGGGGGGGGGGGGAAAAAATTTTTCCCCCCCCCGTGTAT
part.txt 内容如下:
>GENENUMBER000001
ACCTTTGGGG
>GENENUMBER000002
TTTTTTTTTTTTTAG
>GENENUMBER000003
GGGGGGGGGGGGAAAAAATTTTTCCCCCCCC
>GENENUMBER000003
AACCCCGGGGCCCC
解释:
all.txt 中存有名为GENENUMBER000001、GENENUMBER000002、GENENUMBER000003三段完完整整的字符串;
part.txt 中存有的字符串名称与all.txt对应,且part.txt中 字符串内容都是all.txt中 对应名称的字符串内容的片段(包含关系:part < all);
编写一个python程序,读取这两个txt文件,用part.txt中的字符串信息(以下称为片段),在all.txt里对应名称的字符串中定位这个片段,并且提取出最靠近始端的片段之前的10个字符,输出为一个新的文本文件(保存每个10字符长的信息内容,并以换行隔开),名为logoseq.txt
若程序运行正确,输出的logoseq.txt 内容应为:
GGATTTGCGG
GAGGGGTTTT
GTGAGTGTGT
难点:
在part.txt中,有两个片段均名为GENENUMBER000003,意味着这两个片段内容都将在all.txt中名为GENENUMBER000003的那段字符串内被找到。由于片段AACCCCGGGGCCCC更靠近起始端,按程序要求,最终提取的10个字符,应该是在片段AACCCCGGGGCCCC之前的10个字符,而不是GGGGGGGGGGGGAAAAAATTTTTCCCCCCCC之前的10个字符。
谢谢这位给出答案的高人!为什么输出结果当中,会有空白行(隔行)呢?
还有一种情况就是如果被搜寻的字符串对象之前,不足10个字符的,我希望别报错,悄悄跳过它就是了,该怎么处理?
展开