取每条奇数行(1、3、5、...)?

Take every odd line (1, 3, 5, ...)?

我需要取出以下文件 1 的每一行,并在其中添加一个“>”。

seq1
ACTGTGTGTGTACAGTGCA
seq2
ACTGTGTGTGTACGT
seq3
ACAACACGTGTGTTTTTTT

我执行以下操作:

file1 = open(sys.argv[1], "r")

counter = 0
for line in file1:
    counter = counter + 1  
    line = line.strip("\n")
    if counter%2 != 0:
        print(">"+line)
    else:
        print(line)

file1.close()

这是一个练习,所以我想知道是否有更好、更 pythonic 的方法来做同样的事情。

试试这个,

with open('file1.txt') as f:
    for i,v in enumerate(f,1):
        if i%2!=0:
            print(v) # add '>' like ('>'+v)

输出:

seq1

seq2

seq3

我想不出更简洁的方法,但您可以使打印逻辑更紧凑:

counter = 0
for line in file1:
    counter = counter + 1  
    if counter%2 != 0:
        print(">", end="")
    print(line.strip("\n"))

也就是说,您总是打印一行,但对于奇数行,您还要在前面加上 >