![](/img/trans.png)
[英]Extract text present in between two strings in a text file using Python
[英]Problem with Python Code for finding length between two strings in a text file
你好,我對 python 很陌生,開始為生物學家上課,但我在 python 中的作業有問題,只是想不通。 從 .txt 文件中,我應該找到 2 個限制酶(基本上只是字母),“gatc”前面有 g 或 a,后面有 c 或 t,所以:“[ga]gatc[ct]”。 這是文本文件中的 2 次,我應該找出它們之間的長度(xxxx[ga]gatc[ct] xxxxxxx [ga]gatc[ct]xxxx)-->它們之間有多少 x。 我試着把它分組,但我做錯了。 xxxx 是未知數量的字母,由 "g" "a" "t" "c" 組成:例如 ctactatctcatcttaaccttaa
我目前的代碼是:
import regex
file = "enzyme.txt"
f=open(file, "r")
content = f.read()
print(content)
pattern = regex.compile("[ga]gatc[ct]")
for line in open("enzyme.txt"):
for match in regex.finditer (pattern, line):
print(match.group())
print(line)
for lines in f:
m=regex.search("[ga]gatc[ct] {*} [ga]gatc[ct]", lines)
if m:
print(len(str(m.start(1)) + str(m.end(2))))
它向我顯示了正確的序列並打印了它所在的行,但我不知道如何找到它們之間的長度。 代碼的第二部分沒有做任何事情,但也沒有顯示錯誤消息。
在我看來,這將是一個天真的解決方案。
pattern = "[ga]gatc[ct]"
with open("enzyme.txt") as file:
for line in file:
parsed = line.split(pattern)[1]
print(len(parsed))
str.split
將根據給定的模式將線分成幾部分[ga]gatc[ct]
xxxxxxxx
的索引1
,因為索引0
將是''
。 一個空字符串。print(len(parsed))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.