gpt4 book ai didi

python - 代码不打印文件中的最后一个序列

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:31 25 4
gpt4 key购买 nike

我有一个看起来像这样的文件:

<s0> 3
line1
line2
line3
<s1> 5
line1
line2
<s2> 4
etc. up to more than a thousand

每个序列都有一个标题,如 <s0> 3 ,在这种情况下说明后面有三行。在上面的示例中,<s1> 下面的行数是两个,所以我必须将标题更正为 <s1> 2 .

我下面的代码挑选出序列标题和它们下面的正确行数。但出于某种原因,它永远无法获取最后一个序列的详细信息。我知道出了什么问题,但我不知道是什么。有人可以指出我做错了什么吗?

import re

def call():
with open('trial_perl.txt') as fp:
docHeader = open("C:\path\header.txt","w")
c = 0
c1 = 0
header = []
k = -1
for line in fp:
if line.startswith("<s"):
#header = line.split(" ")
#print header[1]
c = 0
else:
c1 = c + 1
c += 1

if c == 0 and c1>0:
k +=1
printing = c1
if printing >= 0:
s = "<s%s>" % (k)
#print "%s %d" % (s, printing)

docHeader.write(s+" "+str(printing)+"\n")

call()

最佳答案

数据中最后一个序列的末尾没有标记,因此您的代码需要在循环完成后处理最后一个序列。

关于python - 代码不打印文件中的最后一个序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30001529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com