繁体   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