占据每条奇数行(1、3、5,...)?

时间:2019-07-16 07:27:21

标签: python file-io

我需要获取以下文件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方式来做到这一点。

2 个答案:

答案 0 :(得分:1)

尝试一下

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

答案 1 :(得分:1)

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

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

也就是说,您总是打印一行,但是对于奇数行,您还以>作为开头。