Skip to content

Instantly share code, notes, and snippets.

@gourab5139014
Created August 20, 2018 23:25
Show Gist options
  • Save gourab5139014/b3acc6da9b5a334c4eab8c6c45de1eaa to your computer and use it in GitHub Desktop.
Save gourab5139014/b3acc6da9b5a334c4eab8c6c45de1eaa to your computer and use it in GitHub Desktop.
Extract timestamps for screen events from PhoneLab logs
# coding: utf-8
# In[118]:
import gzip, io, os.path, json
# In[119]:
pre = '/Users/gourabmi/Documents/workspace/logcat/'
mid_power = '/tag/Power-Screen-PhoneLab/2015/03/'
mid_sql = '/tag/SQLite-Query-PhoneLab/2015/03/'
myfiles = {"0":["22.out.gz"],
"1": ["{num:02d}.out.gz".format(num=i) for i in range(1, 32)],
"2":["{num:02d}.out.gz".format(num=i) for i in range(1, 4)],
"3":["{num:02d}.out.gz".format(num=i) for i in range(1, 32)],
"4":["{num:02d}.out.gz".format(num=i) for i in range(18, 27)],
"5":["{num:02d}.out.gz".format(num=i) for i in range(1, 32)],
"6":["{num:02d}.out.gz".format(num=i) for i in range(1, 32)],
"7":["{num:02d}.out.gz".format(num=i) for i in range(1, 32)],
"8":["{num:02d}.out.gz".format(num=i) for i in range(17, 32)],
"9":["{num:02d}.out.gz".format(num=i) for i in range(1, 32)],
"10":["{num:02d}.out.gz".format(num=i) for i in range(1, 32)]
}
def get_file_pairs():
r = []
for user in myfiles:
for f in myfiles[user]:
s = (user,"{0}{1}{2}{3}".format(pre,user,mid_power,f),"{0}{1}{2}{3}".format(pre,user,mid_sql,f))
# print(s)
r.append(s)
return r
len(get_file_pairs())
# In[120]:
gfp = get_file_pairs()
r = ""
for pair in gfp:
# print(pair[1])
gz = gzip.open(pair[1], 'rb')
f = io.BufferedReader(gz)
for line in f.readlines()[:]:
tokens = str(line).split('\\t')
ts, ordering, logjson = tokens[1],tokens[2],tokens[8]
logjson = logjson.replace('\\n','')
jsondata = json.loads(logjson[:-1])
s = [pair[0], ts, ordering, jsondata["Action"].split(".")[-1].split("_")[-1], '\n'] # User, TS, Ordering, Event
r+="~".join(s)
gz.close()
# print(r)
with gzip.open('screen_events.gz', 'wb') as f:
f.write(r.encode())
# In[38]:
# gz = gzip.open('/Users/Documents/workspace/logcat/0/tag/Power-Screen-PhoneLab/2015/03/22.out.gz','rb')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment