簡體   English   中英

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))
  1. str.split將根據給定的模式將線分成幾部分
  2. 在你的情況下,模式將是[ga]gatc[ct]
  3. 現在您需要訪問xxxxxxxx的索引1 ,因為索引0將是'' 一個空字符串。
  4. 現在你想要模式之間的文本長度,所以, print(len(parsed))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM