取每条奇数行(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"))
也就是说,您总是打印一行,但对于奇数行,您还要在前面加上 >
。
我需要取出以下文件 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"))
也就是说,您总是打印一行,但对于奇数行,您还要在前面加上 >
。