我有一个文本文件,其中包含如下行:
[00451] Kayle - 2/3/15 - Win - 2012-11-22
开头的括号 [] 之间的数字是一个 ID 号,我需要从文件的最后一行(或传递的包含该行的字符串)获取该数字,以便我可以增加它以将更多行写入文件,这样每个游戏记录都会有一个唯一的 ID 号。我已经尝试使用 split、strip 和 regex 一段时间了,但我似乎无法让它工作。有人可以帮忙吗?我也许可以使用文件的行来执行此操作,但我希望稍后能够按 ID、名称或其他标准对文件重新排序。
我在其他代码中写入文件的数据如下所示:
data = "[%s] %s - %s/%s/%s - %s - %s\n" % (id, champname, kills, deaths, assists, winloss, timestamp)
如何获取最后一行的 id,以便可以增加将来的附加 id?
最佳答案
你可以像这样从线路中获取数据,,
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'
关于Python正则表达式或split/strip从文本行括号之间获取int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527329/