簡體   English   中英

僅從給定序列打印字符直到某個范圍。 如何在 Python 中做到這一點?

[英]Printing characters from a given sequence till a certain range only. How to do this in Python?

我有一個文件,其中有一系列字符。 我想讀取該文件的第二行,並且只想將該行的字符讀取到某個范圍內。

我試過這段代碼,但是,它只打印兩行中的特定字符。 並且不打印范圍。

with open ("irumfas.fas", "r") as file:
    first_chars = [line[1] for line in file if not line.isspace()]
    print(first_chars)

任何人都可以在這方面提供幫助嗎? 我怎樣才能給出一個范圍? 下面提到了我要打印的序列。但我想從序列的第二行開始打印字符,直到某個范圍。

IRUMSEQ ATTATAAAAATTAAAATTATATCCAATGAATTCAATTAAATTAAATTAAAGAATTCAATAATATACCCCGGGGGGATCCAATTAAAAGCTAAAAAAAAAAAAAAAAAA

您可以像切片列表一樣切片文件中的 line[1]。

你非常接近:

end = 6 # number of characters
with open ("irumfas.fas", "r") as file:
    first_chars = [line[1][:end] for line in file if not line.isspace()]
    print(first_chars)

我想你想要這樣的東西:

with open("irumfas.fas", "r") as file:
    second_line = file.readlines()[1]
    print(second_line[0:9])

readlines()將為您提供行列表——我們對其進行索引以僅獲取第二行。 您現有的代碼將遍歷所有行(這不是您想要的)。

至於提取某個范圍,您可以使用列表切片到select從該行中您想要的字符范圍 - 在上面的示例中,它是前 10 個。

可以使用以下方法。 考慮文件包含

RANDOMTEXTSAMPLE
SAMPLERANDOMTEXT
RANDOMSAMPLETEXT
with open('sampleText.txt') as sampleText:
    content = sampleText.read()
    content = content.split("\n")[1]
    content = content[:6]
    print(content)

Output 將

SAMPLE

暫無
暫無

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

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