1

我有一个带有如下行的文本文件:

[00451] Kayle - 2/3/15 - Win - 2012-11-22

开始时括号 [] 之间的数字是一个 id 号,我需要从文件的最后一行(或传递的包含该行的字符串)中获取它,以便我可以增加它以向文件写入更多行,所以每个游戏记录会有一个唯一的id号。我一直在尝试拆分、剥离和正则表达式,但我似乎无法让它工作。任何人都可以帮忙吗?我可以只使用文件的行来执行此操作,但我希望稍后能够按 id、名称或其他标准重新排序文件。

我在其他代码中写入文件的数据如下所示:

data = "[%s] %s - %s/%s/%s - %s - %s\n" % (id, champname, kills, deaths, assists, winloss, timestamp)

如何获取最后一行的 id,以便增加未来的附加 id?

4

2 回答 2

2

您可以像这样从行中获取数据,

In [5]: x = "[00451] Kayle - 2/3/15 - Win - 2012-11-22"

In [6]: x.split(']')[0].lstrip('[')
Out[6]: '00451'

然后将其转换为 int 并进行数学运算

In [7]: str(int(x.split(']')[0].lstrip('[')) + 1).zfill(5)
Out[7]: '00452'

另一种方法可能是

In [8]: id = "%05d" %(int(x.split(']')[0].lstrip('[')) + 1)

In [9]: id
Out[9]: '00452'
于 2012-11-23T10:43:09.230 回答
1

这是一个正则表达式解决方案:

>>> s = '[00451] Kayle - 2/3/15 - Win - 2012-11-22'

>>> import re
>>> re.match(r'\[(\d+)\]', s).group(1)
00451
于 2012-11-23T10:48:35.857 回答