我的代码
sel=[]
for x in range(67):
sel.append(x)
i=0
fnew=open('data.txt', 'w')
f=open('DATATESTKAREN.txt')
lines=f.readlines()
for line in lines:
if i in sel:
fnew.write("%s\n" % line)
i+=1
我得到的不是我真正想要的 格式:OCCAM2MTDATA_1.0
MODEL RESPONSE FROM KAREN
sites: 15
site-6
site-7
site-5
我应该如何重新格式化write
?
答案 0 :(得分:1)
readlines
的输出会自动将new line
(\n
)添加到每行的末尾。
在您的代码中,您拨打fnew.write("%s\n" % line)
,然后添加另一个。
如果您只使用fnew.write("%s" % line)
,那就没事了!
注意:我建议使用.format()
代替%s
,因为它是"较新的"和建议的方式,但在你的情况下,你只需使用变量写:fnew.write(line)
答案 1 :(得分:0)
我同意GáborErdős关于额外的'\n'
您似乎也只想读取前68行(计数器0到67),这意味着您可以稍微简化一下代码:
i=0
limit = 67
with open('data.txt', 'w') as fnew:
with open('DATATESTKAREN.txt', 'r') as f:
for line in f.readlines():
if i <= limit:
fnew.write(line)
i += 1
else:
break # no need to read more lines
HTH, 埃德。