鱼C论坛

 找回密码
 立即注册
查看: 1760|回复: 7

python 问题求助

[复制链接]
发表于 2021-8-20 22:04:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本身是别的小伙伴问的问题,由于本人学艺不精,解题一半就卡住了:
需要提取一行ID 一行序列号,以ID为名简历文件夹,相同ID的序列号均存放在一个ID文件里
import re
text = '''
>FA-Oe9L01-01
TCGTTTTGGTATTTTCTCTTTTGTCTTTTA
>FA-Oe9L01-01
TCGTTTTGGTATTTTCTCTTTTGTCTTTAA
>FA-Oe9L01-01
TCGTTTTGGTATTTTCTCTTTTGTCTTTTA
>FA-Oe9L01-03
GATGTGCACATAGAGATGTCTTACTGCACC
>FA-Oe9L01-03
GATGTGCACATAGAGATGTCTTACTGCAGC
>FA-Oe9L01-03
GATGTGCACATAGAGATGTCTTACTGCACC
>FA-Oe9L01-03
GATGTGCACATAGAGATGTCTTACTGCACA
'''

Id = re.compile("[A-Za-z]+-[A-Za-z0-9]+-\d+") #匹配ID

Xulie = re.compile("[A-Za-z]{30}") #匹配序列号

Id_list = re.findall(Id, text)
# print(Id_list)
Xulie_list = re.findall(Xulie, text)
for i in Id_list:
    with open(i, "w+") as f:
        for j in Xulie_list:

            f.write(j)


ID和序列号我都正则匹配出来了,在保存的时候我遇到了问题
本来想的是一个ID建一个文件夹,然后对应序列号存进去,ID文件夹已经存在时,就直接把序列号写入
我这么写肯定是不对,文件名能出来,但是内容会写进全部的序列号,这个希望大佬指导下


或者说用字典形式吗?一个ID对应多个值,存入字典,然后用字典的键和值分别对应文件名和内容是不是好点,但是一个ID对应多个值这个字典不大知道改如何写出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-20 22:15:57 | 显示全部楼层
看不懂但是内容会写进全部的序列号这句话是什么意思  不过正则肯定可以优化 毕竟字母只有AGCTU
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 22:39:52 | 显示全部楼层
from pathlib import Path
cwd = Path.cwd()
thiskey = '无id'
opt_dir = cwd / Path('opt')
opt_dir.mkdir(parents=True, exist_ok=True)
with open(cwd / Path('fasta.txt')) as f:
    for line in f.readlines():
        if line[0] == '>':
            thiskey = line[1:-1]
        else:
            with open(opt_dir.joinpath(thiskey+'.txt'),'a') as id:
                id.write(line)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 08:34:17 | 显示全部楼层

这块知识还没学过,尴尬  研究一下,感谢回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 08:34:52 | 显示全部楼层
kogawananari 发表于 2021-8-20 22:15
看不懂但是内容会写进全部的序列号这句话是什么意思  不过正则肯定可以优化 毕竟字母只有AGCTU

就是会新建两个文件,但是每个文件的内容是全部序列号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-21 11:19:10 | 显示全部楼层
代码小白liu 发表于 2021-8-21 08:34
就是会新建两个文件,但是每个文件的内容是全部序列号

这不就是需求吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-22 23:16:14 | 显示全部楼层
给我的感觉,你的需求很简单,能轻松实现,但是你没表述明白,我给不出一个具体的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-29 17:00:31 | 显示全部楼层
赖宝宝 发表于 2021-8-22 23:16
给我的感觉,你的需求很简单,能轻松实现,但是你没表述明白,我给不出一个具体的代码

第一行是ID  第二是ID对应的序列号,新建文件,以ID为文件名,序列为内容,相同ID的序列号存入到一个文件夹
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 13:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表