0
1
Fork 0
Browse Source

style

master
kallejre 3 years ago
parent
commit
a982728c48
  1. 164
      wonderful _cleanup.py

164
wonderful _cleanup.py

@ -1,123 +1,141 @@
import os, re
#for itm in os.listdir('mystery'):
crime_separator='*******\nCrime'
import os
import re
crime_separator = '*******\nCrime'
not_sus_regex = r"[Nn][o\']t[ a-z]*sus"
not_sus=re.compile(not_sus_regex, re.IGNORECASE)
people=dict()
companies=set()
not_sus = re.compile(not_sus_regex, re.IGNORECASE)
people = dict()
companies = set()
# in_to_cm('6\'0"') == 182.88
class Person:
def __init__(self, name):
n=name.strip().split()
if len(n)>2:
n = name.strip().split()
if len(n) > 2:
print(name)
self.first=n[0]
self.last=n[1]
self.memberships=set()
self.gender=None
self.age=None
self.not_sus=None
self.addr=None
self.interview=None
self.height=None
self.weight=None
self.plate=None
self.make=None
self.color=None
self.first = n[0]
self.last = n[1]
self.memberships = set()
self.gender = None
self.age = None
self.not_sus = None
self.addr = None
self.interview = None
self.height = None
self.weight = None
self.plate = None
self.make = None
self.color = None
def add_member(self, comp):
self.memberships.add(comp)
def __repr__(self):
out=list()
for i in sorted(filter(lambda x: x[0]!='_',dir(self))):
if not callable(eval('self.'+i)):
out.append(': '.join([i, str(eval('self.'+i))]))
out = list()
for i in sorted(filter(lambda x: x[0] != '_', dir(self))):
if not callable(eval('self.' + i)):
out.append(': '.join([i, str(eval('self.' + i))]))
return '\n'.join(out)
def in_to_cm(inch):
return round(int(inch.split('\'')[0])*30.48+int(inch.split('\'')[1][:-1])*2.54,2)
return round(int(inch.split('\'')[0]) * 30.48 + int(inch.split('\'')[1][:-1]) * 2.54, 2)
def lb_to_kg(lb):
return round(int(lb.split()[0])*0.4536,2)
wonderful_blacklist={'alice','hatter','rabbit','march mare'}
return round(int(lb.split()[0]) * 0.4536, 2)
wonderful_blacklist = {'alice', 'hatter', 'rabbit', 'march mare'}
def check_wonders(x):
x=x.lower()
x = x.lower()
for alice in wonderful_blacklist:
if alice in x:
return False
return True
with open(r'mystery\crimescene') as f:
scene=filter(lambda x: check_wonders(x) , f.read().split(crime_separator))
scene = filter(lambda x: check_wonders(x), f.read().split(crime_separator))
with open(r'mystery\crimescene2','w') as f:
t=list(sorted(scene, key=lambda x:(not 'clue' in x.lower(),x)))[:10]
t=crime_separator+crime_separator.join(t)
print(t.replace('\n\n\n','\n'), file=f)
with open(r'mystery\crimescene2', 'w') as f:
t = list(sorted(scene, key=lambda x: (not 'clue' in x.lower(), x)))[:10]
t = crime_separator + crime_separator.join(t)
print(t.replace('\n\n\n', '\n'), file=f)
addresses=dict()
addresses = dict()
for streetname in os.listdir(r'mystery\streets'):
with open(r'mystery\streets'+'\\'+streetname) as f:
street=f.readlines()
#ints=list(filter(lambda x: 'SEE INTER' in x, f.readlines()))
ints=set()
with open(r'mystery\streets' + '\\' + streetname) as f:
street = f.readlines()
# ints=list(filter(lambda x: 'SEE INTER' in x, f.readlines()))
ints = set()
for nr in range(len(street)):
if 'SEE INTER' in street[nr]:
ints.add((streetname, nr+1, street[nr].strip().split('#')[1]))
ints.add((streetname, nr + 1, street[nr].strip().split('#')[1]))
for inter in ints:
intr=inter[2]
with open(r'mystery\interviews\interview-'+intr) as inf:
inview=inf.read().strip().lower().replace('\n', ' ')
ns=bool(not_sus.findall(inview))
intr = inter[2]
with open(r'mystery\interviews\interview-' + intr) as inf:
inview = inf.read().strip().lower().replace('\n', ' ')
ns = bool(not_sus.findall(inview))
# if ns: print(inview)
streetname=inter[0].replace('_',' ')
addresses[(streetname, str(inter[1]))]={'ns':ns,'interv':inview}
streetname = inter[0].replace('_', ' ')
addresses[(streetname, str(inter[1]))] = {'ns': ns, 'interv': inview}
for comp in os.listdir(r'mystery\memberships'):
with open(r'mystery\memberships'+'\\'+comp) as f:
with open(r'mystery\memberships' + '\\' + comp) as f:
for name in f:
name=name.strip()
name = name.strip()
if name not in people:
people[name]=Person(name)
people[name] = Person(name)
people[name].add_member(comp)
with open(r'mystery\people') as f:
for line in f.readlines()[8:]:
name, g, age, addr=line.strip().split('\t')
name=name.strip()
name, g, age, addr = line.strip().split('\t')
name = name.strip()
if name not in people:
people[name]=Person(name)
people[name].age=age.strip()
people[name].gender=g.strip()
people[name].addr=tuple(addr.split(', line '))
people[name] = Person(name)
people[name].age = age.strip()
people[name].gender = g.strip()
people[name].addr = tuple(addr.split(', line '))
if people[name].addr in addresses:
people[name].interview=addresses[people[name].addr]['interv']
people[name].not_sus=addresses[people[name].addr]['ns']
people[name].interview = addresses[people[name].addr]['interv']
people[name].not_sus = addresses[people[name].addr]['ns']
# else:print(people[name].addr, list(addresses)[4])
with open(r'mystery\vehicles') as f:
for car in f.read().split('\n\n')[1:]:
t=list(map(lambda x:x.replace('se Plate', 'te:').split(': ')[1].strip(), car.strip().split('\n')))
plate, make, color,name, hei, wei=t
t = list(map(lambda x: x.replace('se Plate', 'te:').split(': ')[1].strip(), car.strip().split('\n')))
plate, make, color, name, hei, wei = t
if name not in people:
people[name]=Person(name)
people[name].height=in_to_cm(hei)
people[name].weight=lb_to_kg(wei)
people[name].plate=plate
people[name].make=make
people[name].color=color
people[name] = Person(name)
people[name].height = in_to_cm(hei)
people[name].weight = lb_to_kg(wei)
people[name].plate = plate
people[name].make = make
people[name].color = color
def format_output(field):
if not field:return ''
if not field:
return ''
elif type(field) in {list, tuple}:
return ', '.join(list(map(format_output,field)))
return ', '.join(list(map(format_output, field)))
elif type(field) in {set}:
return ', '.join(list(map(format_output,sorted(field))))
return ', '.join(list(map(format_output, sorted(field))))
elif type(field) is float:
return str(field).replace('.',',')
return str(field).replace('.', ',')
else:
return str(field).replace('\n', ' ')
f=open('people.csv','w')
f = open('people.csv', 'w')
print('Full name;First;Last;G;Height;Age;Weight;Address;Sus;Make;Color;Plate;Membership;Interview', file=f)
for name in sorted(people):
output_row=[name]
pp=people[name]
output_row = [name]
pp = people[name]
output_row.append(pp.first)
output_row.append(pp.last)
output_row.append(pp.gender)
@ -131,5 +149,5 @@ for name in sorted(people):
output_row.append(pp.plate)
output_row.append(pp.memberships)
output_row.append(pp.interview)
print(*list(map(format_output,output_row)),sep=';', file=f)
print(*list(map(format_output, output_row)), sep=';', file=f)
f.close()

Loading…
Cancel
Save