鱼C论坛

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

python 问题求助

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

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

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

x
本身是别的小伙伴问的问题,由于本人学艺不精,解题一半就卡住了:
需要提取一行ID 一行序列号,以ID为名简历文件夹,相同ID的序列号均存放在一个ID文件里
  1. import re
  2. text = '''
  3. >FA-Oe9L01-01
  4. TCGTTTTGGTATTTTCTCTTTTGTCTTTTA
  5. >FA-Oe9L01-01
  6. TCGTTTTGGTATTTTCTCTTTTGTCTTTAA
  7. >FA-Oe9L01-01
  8. TCGTTTTGGTATTTTCTCTTTTGTCTTTTA
  9. >FA-Oe9L01-03
  10. GATGTGCACATAGAGATGTCTTACTGCACC
  11. >FA-Oe9L01-03
  12. GATGTGCACATAGAGATGTCTTACTGCAGC
  13. >FA-Oe9L01-03
  14. GATGTGCACATAGAGATGTCTTACTGCACC
  15. >FA-Oe9L01-03
  16. GATGTGCACATAGAGATGTCTTACTGCACA
  17. '''

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

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

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

  26.             f.write(j)


复制代码



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


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

使用道具 举报

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

使用道具 举报

发表于 2021-8-20 22:39:52 | 显示全部楼层
  1. from pathlib import Path
  2. cwd = Path.cwd()
  3. thiskey = '无id'
  4. opt_dir = cwd / Path('opt')
  5. opt_dir.mkdir(parents=True, exist_ok=True)
  6. with open(cwd / Path('fasta.txt')) as f:
  7.     for line in f.readlines():
  8.         if line[0] == '>':
  9.             thiskey = line[1:-1]
  10.         else:
  11.             with open(opt_dir.joinpath(thiskey+'.txt'),'a') as id:
  12.                 id.write(line)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

这块知识还没学过,尴尬  研究一下,感谢回答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

就是会新建两个文件,但是每个文件的内容是全部序列号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

这不就是需求吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-22 23:16:14 | 显示全部楼层
给我的感觉,你的需求很简单,能轻松实现,但是你没表述明白,我给不出一个具体的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

第一行是ID  第二是ID对应的序列号,新建文件,以ID为文件名,序列为内容,相同ID的序列号存入到一个文件夹
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 09:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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