我有一个大的txt文件(日志文件),其中每个条目都以时间戳开始,比如Sun,2013年3月17日18:58:06
我想把文件分为多个txt的mm/yy和排序
下面是我计划的通用代码,但我不知道如何实现这样的代码。我知道如何按行数等分割文件,但不按指定的时间戳
import re
f = open("log.txt", "r")
my_regex = re.compile('regex goes here')
body = []
for line in f:
if my_regex.match(line):
if body:
write_one(body)
body = []
body.append(line)
f.close()
txt中的行示例
2Sun, 17 Mar 2013 18:58:06 Pro IDS2.0 10E22E37-B2A1-4D55-BE20-84661D420196 nCWgKUtjalmYx053ykGeobwgWW V3 3Sun, 17 Mar 2013 19:17:33 <AwaitingDHKey c i FPdk 1:0 pt 0 Mrse> 0000000000000000000000000000000000000000 wo> HomeKit keychain state:HomeKit: mdat=2017-01-01 01:41:47 +0000,cdat=2017-01-01 01:41:47 +0000,acct=HEDF3,class=genp,svce=AirPort,labl=HEDF3 4Sun, 13 Apr 2014 19:10:26 values in decoded form... oak: <C: gen:'[ 21:10 5]' ak> <PI@0x7fc01dc05d90: [name: Bourbon] [--SrbK-] [spid: zP8H/Rpy] [os: 15G31] [devid: 49645DA6] [serial: C17J9LGKDTY3] - 5Sun, 16 Feb 2014 18:59:41 tLastKVSKeyCleanup: ak|nCWgKUtjalmYx053ykGeobwgWW:sk1Kv+37Clci7VwR2IGa+DNVEA: DHMessage (0x02): 112
您可以使用regex(例如[0-9]{4}([01]\d | 2[0123]):([012345]\d):([012345]\d))但是在示例中,post日期总是在字符串的开头。如果是这样的话,您可以使用字符串的位置来解析日期。你知道吗
这为您提供的三个示例提供了正确的输出
datetime对象具有
month()
和year()
等属性,因此可以使用简单的等式检查两个日期是否在同一个月和/或年中。你知道吗相关问题 更多 >
编程相关推荐