有条件地读取 python 中的文件内容
Read file contents in python conditionally
我正在尝试从 python 中的基因组文件中读取一条染色体序列。基因组文件的格式如下,但每条染色体的序列行更多:
Chr1
ATCGTGTGATGGTGCGTAGATGCTGAT
GCTGATGTGTCGAGCGATGCTGAGTCG
Chr2
TGCGTGATGCTGAGCGATGCTGATGCT
TAGCTGACCACACACCTGTTTGTAGG
Chr3
CAGTCGTAGCGATGCTGATGATGCTGA
GGTTGGTTGGCGGACCACCATTACTAT
我使用下面的代码读取全基因组序列。但是,我只想要一条染色体的序列(例如 Chr2 的整个序列)。除了读取整个基因组,然后搜索 Chr2 的模式,我还有其他方法可以做到这一点吗?
谢谢
with open("genome.txt") as f:
for line in f:
genome.append(line.rstrip())
打开文件并逐行阅读,直到找到 'Chr2'.
消耗所有 non-empty 行,直到到达 EOF 或任何以 'Chr'
开头的行
def getgenomes(gfile):
g = []
for line in gfile:
if line.startswith('Chr'):
break
if (line := line.strip()):
g.append(line)
return g
with open('genome.txt', encoding='utf-8') as gfile:
genomes = None
for line in gfile:
if line.startswith('Chr2'):
genomes = getgenomes(gfile)
break
print(genomes)
输出:
['TGCGTGATGCTGAGCGATGCTGATGCT', 'TAGCTGACCACACACCTGTTTTGTAGG']
Is_Chr2 = False
with open("genome.txt") as f:
for line in f:
if Is_Chr2: genome.append(line.rstrip())
if line.rstrip() == "Chr2": Is_Chr2 = True
else if line.rstrip()[:2] == "Chr" and Is_Chr2: break
我正在尝试从 python 中的基因组文件中读取一条染色体序列。基因组文件的格式如下,但每条染色体的序列行更多:
Chr1
ATCGTGTGATGGTGCGTAGATGCTGAT
GCTGATGTGTCGAGCGATGCTGAGTCG
Chr2
TGCGTGATGCTGAGCGATGCTGATGCT
TAGCTGACCACACACCTGTTTGTAGG
Chr3
CAGTCGTAGCGATGCTGATGATGCTGA
GGTTGGTTGGCGGACCACCATTACTAT
我使用下面的代码读取全基因组序列。但是,我只想要一条染色体的序列(例如 Chr2 的整个序列)。除了读取整个基因组,然后搜索 Chr2 的模式,我还有其他方法可以做到这一点吗?
谢谢
with open("genome.txt") as f:
for line in f:
genome.append(line.rstrip())
打开文件并逐行阅读,直到找到 'Chr2'.
消耗所有 non-empty 行,直到到达 EOF 或任何以 'Chr'
开头的行def getgenomes(gfile):
g = []
for line in gfile:
if line.startswith('Chr'):
break
if (line := line.strip()):
g.append(line)
return g
with open('genome.txt', encoding='utf-8') as gfile:
genomes = None
for line in gfile:
if line.startswith('Chr2'):
genomes = getgenomes(gfile)
break
print(genomes)
输出:
['TGCGTGATGCTGAGCGATGCTGATGCT', 'TAGCTGACCACACACCTGTTTTGTAGG']
Is_Chr2 = False
with open("genome.txt") as f:
for line in f:
if Is_Chr2: genome.append(line.rstrip())
if line.rstrip() == "Chr2": Is_Chr2 = True
else if line.rstrip()[:2] == "Chr" and Is_Chr2: break