import re
with open("conversion_table.csv",'r') as infile:
data = [line for line in infile]
data = [n for n in data if not "see table" in n]
for i,line in enumerate(data):
data[i] = re.sub(r'(sq(?=\W))|((?<=\W)sq(?=\W|$))','square ',data[i])
data[i] = re.sub(r'(cu(?=\W))|((?<=\W)cu(?=\W|$))','cubic ',data[i])
data[i] = re.sub(r'(ft(?=\W))|((?<=\W)ft(?=\W|$))','foot ',data[i])
data[i] = re.sub(r'(cm(?=\W))|((?<=\W)cm(?=\W|$))','centimeter ',data[i])
data[i] = re.sub(r'(km(?=\W))|((?<=\W)km(?=\W|$))','kilometer ',data[i])
data[i] = re.sub(r'(in(?=\W))|((?<=\W)in(?=\W|$))','inch ',data[i])
data[i] = re.sub(r'(min(?=\W))|((?<=\W)min(?=\W|$))','minute',data[i])
data[i] = re.sub(r'(hrs(?=\W))|((?<=\W)hrs(?=\W|$))','hour',data[i])
data[i] = re.sub(r'((kg)|(kgs)(?=\W))|((?<=\W)(kg)|(kgs)(?=\W|$))','kilogram ',data[i])
data[i] = re.sub(r'/',' per ',data[i])
data[i] = re.sub(r'metre','meter',data[i]) data[i] = re.sub(r'inches','inch',data[i]) data[i] = re.sub(r'(?<=[a-z])s(?=,|\s|$)',' ',data[i]) data[i] = re.sub(r'feet','foot',data[i]) data[i] = re.sub(r' {2,}',' ',data[i]) data[i] = re.sub(r' s ',' ',data[i])
with open("clean_conversion_table.csv",'w') as outfile:
for line in data:
outfile.write(line)
with open("formatted_conversions.txt",'w') as outfile:
for line in data:
s = line.split(',') try:
float(s[1])
except:
continue
try:
s[0] = s[0].replace('.','') s[0] = s[0].strip() s[2] = s[2].replace('.','')
s[2] = s[2].strip() expression = 'factors.insert(("{0}","{1}"),{2});\n'.format(s[0],s[2],float(s[1]))
outfile.write(expression)
except:
continue