【发布时间】:2020-10-16 06:12:12
【问题描述】:
我正在尝试读取包含以相同模式开头但以不同数字结尾的字符串的文件。我想通过替换它们(用正则表达式)来缩短这些字符串并将它们写在不同的文件中。我正在尝试使用 re.sub(我不想使用拆分)。
原文件是这样的:
@C00127:132:CDTL1ACXX:11000(several digits...)
@C00127:132:CDTL1ACXX:55588(several digits...)
@C00127:132:CDTL1ACXX:99999(several digits...)
我的想法是编写一个新文件,其中包含字符串的保留模式(即“@C00127:132:CDTL1ACXX:”),后跟 前 5 个可变数字。所以我想了一个这样的脚本:
import re
general_ID = open("general_ID.txt", "w+")
x = raw_input('type the name of the fastq file that you wanna extract the IDs: ')
with open (x, 'rt') as myfile:
for line in myfile:
general_ID.write(re.sub('@C00127:132:CDTL1ACXX:......+', '@C00127:132:CDTL1ACXX:.....', line))
general_ID.close()
当我运行这个脚本时,我的原始文件来自:
@C00127:132:CDTL1ACXX:11000(several digits...)
@C00127:132:CDTL1ACXX:55588(several digits...)
@C00127:132:CDTL1ACXX:99999(several digits...)
etc
这样结束:
C00127:132:CDTL1ACXX:.....
C00127:132:CDTL1ACXX:.....
C00127:132:CDTL1ACXX:.....
etc
【问题讨论】:
-
你能提供预期的样本输出吗?
-
假设我的原始文件包含:“@C00127:132:CDTL1ACXX:110052527274723423424”等等。我想检索“”@C00127:132:CDTL1ACXX:11005”,即前五个数字,在保守字符串之后(“”@C00127:132:CDTL1ACXX:“,存在于所有ID中,每个行)。
-
请检查下面的答案,并考虑接受最适合您的解决方案的答案。
标签: python regex replace write